关于类的初始化的问题.
==============================
a.h
class a{
public:
a(); //问题1
a(int);
virtual ~a();
};
a.cpp
a::a(int lo){}
a::a(){}
a::~a(){}
==============================
b.h
#include "a.h "
#define NUM 6;
class b: public a
{
public:
b();
virtual ~b();
int i;
};
b.cpp
b::b():a(NUM){}
b::~b(){}
=================================================
#include "b.h "
class c
{
public:
c();
virtual ~c();
b bb; //问题2 出错
};
////////////////////////////////////////////////////
问题1 必须要有一个不带参数的构造函数么??没有的话编译出现
error C2512: 'a ' : no appropriate default constructor available
问题2 这样写编译出错.
error C2146: syntax error : missing '; ' before identifier 'bb '
error C2501: 'b ' : missing storage-class or type specifiers
error C2501: 'bb ' : missing storage-class or type specifiers
我该怎么办?
谢谢大家!
[解决办法]
这样代码直接编译过去
class a{
public:
a(int);
virtual ~a();
};
a::a(int x){}
a::~a(){}
class b: public a
{
public:
b();
virtual ~b();
int i;
};
b::b():a(0){}
b::~b(){}
class c
{
public:
c();
virtual ~c();
b bb;
};
c::c(){}
c::~c(){}
int main(int,char*[])
{
c x;
return 0;
}