我在初始化对象时遇到问题。 以下是一段代码,
#include <iostream>
#include <conio.h>
using namespace std;
class Base
{
public:
Base(int a)
{
m_a = a;
}
private:
int m_a;
};
class Derived:public Base
{
public:
Derived(char a)
{
m_a = a;
}
private:
char m_a;
};
void main()
{
_getch();
}
编译上面的代码会出现以下错误: 错误C2512:'Base':没有合适的默认构造函数
我知道由于派生类和基类都只有参数化构造函数,我需要在派生类构造函数中初始化基类对象。但我不知道该怎么做。 谁能告诉我上面的代码有什么问题?
答案 0 :(得分:6)
public:
Derived(char a):Base(/*int Parameter*/),m_a(a)
{
}
答案 1 :(得分:0)
制作小道之后我还有一种初始化基类的方法, 以下是代码,
#include <iostream>
#include <conio.h>
using namespace std;
class Base
{
public:
Base(int a)
{
m_a = a;
}
private:
int m_a;
};
class Derived:public Base
{
public:
Derived(int b, char a):Base(b)
{
m_a = a;
}
private:
char m_a;
};
void main()
{
Derived d(10,'A');
_getch();
}