我还在学习C ++,这里的一些人帮助了我很多,谢谢大家。
我现在还有另外一个问题:我有一个来自A类的B类:
#ifndef CLASSB
#define CLASSB
#include <cstdlib>
#include <string>
#include <vector>
#include <time.h>
using namespace std;
#include "ClassA.h"
class ClassA;
class ClassB: public ClassA{
public:
ClassB(ClassC* classCinstance, int gnr, int type) : ClassA(classCinstance);
};
#endif
#include "ClassB.h"
ClassB::ClassB(ClassC* classCinstance, int gnr, int type) : ClassA(classCinstance){
//Some stuff
}
问题在于,当我编译时,它说:
错误C2969:语法错误:';' :期望的成员函数定义 以'}'结尾
Visual Express告诉我:
错误:预期为'{'
当我将光标指向ClassB.h中的分号结束行18(ClassB的构造函数声明)时。
我该如何解决?我声明了这个构造函数,所以它存在......我在.cpp声明它的主体......所以一切都很好,对吗?
答案 0 :(得分:1)
ClassB构造函数声明错误:
ClassB(ClassC* classCinstance, int gnr, int type) : ClassA(classCinstance);
必须是
ClassB(ClassC* classCinstance, int gnr, int type);
答案 1 :(得分:1)
标题中ClassB
的构造函数声明有一个冒号列表,它不应该。这是定义的一部分。
所以:
ClassB(ClassC* classCinstance, int gnr, int type) : ClassA(classCinstance);
应为:
ClassB(ClassC* classCinstance, int gnr, int type);