C ++类规范,实现问题

时间:2011-04-28 20:48:43

标签: c++ class header implementation specifications

我在完成一些单独的编译时遇到了问题。这很简单,但我无法弄清楚这个错误。

我遇到了这些例外情况:

> 36 C:\Cpp\P6\employee.cpp expected `)' before ',' token 36
> C:\Cpp\P6\employee.cpp expectedinit-declarator before ')' token  36
> C:\Cpp\P6\employee.cpp expected `,' or `;' before ')' token  42
> C:\Cpp\P6\employee.cpp expected `)' before ',' token  42
> C:\Cpp\P6\employee.cpp expected init-declarator before ')' token  42
> C:\Cpp\P6\employee.cpp expected `,' or `;' before ')' token

代码:

    /*line 36*/ Employee::Employee(n, id) { //constructor for name and ID

                            setName(n);
                            setID(id);
    };

   /*line 42*/ Employee::Employee(id, d, p, n) {//constructor for all member variables

                        setID(id);
                        setDept(d);
                        setPos(p);
                        setName(n);
    };

头文件看起来像(它们是公开的):

         Employee::Employee();
         Employee::Employee(std::string, int);
         Employee::Employee(int, std::string, std::string, std::string);

有关这些错误的含义或如何修复它们的任何帮助?

1 个答案:

答案 0 :(得分:4)

您必须在变量名称前面加上一个类型。你有声明,但没有定义。像下面这样的东西应该解决它:

Employee::Employee(std::string n, int id) { //constructor for name and ID

                            setName(n);
                            setID(id);
    };

第二个Employee构造函数定义也是如此。

此外,最好通过常量引用而不是值传递std::string。并且...你的头像向左旋转了45度。