读书人

关于类的初始化的有关问题

发布时间: 2012-03-30 17:32:09 作者: rapoo

关于类的初始化的问题.
==============================
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;
}

读书人网 >C++

热点推荐