2014-02-17 42 views
1

我想在C创建一个类++(我没有在很长一段时间连班工作!),我想创建下列方式几个构造函数:无法创建在C构造++类

#ifndef TAAP_HEAD 
#define TAAP_HEAD 

class TaaP 
{ 
public: 
    // default cosntructor 
    Taap(); 

    // constructor with xyz 
    Taap(double xyz[3]); 

private: 
    double m_xyz[3]; 
    double m_Rho; 
    double m_GradRho[3]; 
    double m_HessRho[3][3]; 
    double m_EigenValues[3]; 
    double m_EigenVectors[3][3]; 
}; 
#endif 

其中Taap()将简单地分配xyz{0.0, 0.0, 0.0},但Taap(double xyz[3])将允许用户输入自己的起始坐标。

我得到在编译时的错误是:

hdr_taap.h:9:8: error: ISO C++ forbids declaration of ‘Taap’ with no type [-fpermissive] 
    Taap(); 
     ^
hdr_taap.h:12:21: error: ISO C++ forbids declaration of ‘Taap’ with no type [-fpermissive] 
    Taap(double xyz[3]); 
        ^

这是否任何意义?我试图遵循很多类建设的例子,并且看不到我做错的任何事情。

+4

错别字:您需要'TaaP',而不是'Taap',反之亦然。构造函数必须与该类具有相同的名称。 – juanchopanza

回答

5

C++区分大小写。将TaaP更改为Taap

+0

谢谢!我来自fortran,所以我不习惯担心那些东西! – drjrm3

4

您的问题是,该类名为TaaP和您的构造函数名为Taap(注意大小写)。构造函数应该与它们所属的类具有完全相同的名称。