gpt4 book ai didi

C++ 从 C 类调用 A 类中的构造函数(继承)

转载 作者:太空狗 更新时间:2023-10-29 23:05:14 25 4
gpt4 key购买 nike

经过一段时间的摆弄和完成“c++ 通过游戏编程”一书后,我被我正在编写的程序困住了。

情况如下:

Class A
{
public:
A(int x)

protected:
int a;

};

A::A(int x):
a(x)
{}

Class B : public A

Class C : public B
{
public:
C(int x)
};

C::C(int x)
{
A(int x);
}

能否在C类的构造函数中调用A类的构造函数?

据我所知:B 链接到 A,C 链接到 B,所以当我能够通过派生访问成员变量和函数时,我应该能够从 C 访问类 A 的构造函数。

最佳答案

你可以试试这个:

class B : public A
{
public:
B(int x) : A(x) { }
};

class C : public B
{
public:
C(int x) : B(x) { }
};

或者如果你很懒惰(并使用 C++11 ):

class B : public A
{
public:
using A::A(int);
};

class C : public B
{
public:
using B::B(int);
};

这行不通:

class C : public B
{
public:
C(int x) : A(x) { }
};

main.cpp: In constructor ‘C::C(int)’:

main.cpp:23:16: error: type ‘A’ is not a direct base of ‘C’

C(int x) : A(x) { }

^

main.cpp:23:19: error: use of deleted function ‘B::B()’

C(int x) : A(x) { }

关于C++ 从 C 类调用 A 类中的构造函数(继承),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20227149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com