class A { public: A() { num++; } virtual void print() { std::cout << num; } private: int num = { 0 }; }; class B : public A { public: virtual void print() { std::cout << num; } private: int num = { 0 }; }; int main() { A* a = new B(); a->print(); }以上输出结果是什么?
区块链毕设网qklbishe.com为您提供问题的解答
class A
{
public:
A() {
num++;
}
virtual void print() { std::cout << num; }
private:
int num = { 0 };
};
class B : public A
{
public:
virtual void print() { std::cout << num; }
private:
int num = { 0 };
};
int main()
{
A* a = new B();
a->print();
}以上输出结果是什么?
这段代码中,基类`A`有一个构造函数,会在创建对象时使`num`成员变量加1。类`B`继承自`A`并重写了`print`方法,但也有自己的`num`成员变量。在`main`函数中,创建了一个指向`B`类实例的`A`指针`a`,然后调用`print`方法。 然而,这里存在一个问题:基类`A`的构造函数会执行,导致`A`中的`num`加1,但`B`类中定义了自己的`num`,它不会被基类构造函数初始化。因此,`B`类中的`num`保持默认值0。 当通过`A* a`指针调用`print`时,由于`B`重写了`print`方法,实际调用的是`B`的`print`。这将打印`B`类中的`num`值,即0。
03:25
以上就是关于问题class A { public: A() { num++; } virtual void print() { std::cout << num; } private: int num = { 0 }; }; class B : public A { public: virtual void print() { std::cout << num; } private: int num = { 0 }; }; int main() { A* a = new B(); a->print(); }以上输出结果是什么?的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » class A { public: A() { num++; } virtual void print() { std::cout << num; } private: int num = { 0 }; }; class B : public A { public: virtual void print() { std::cout << num; } private: int num = { 0 }; }; int main() { A* a = new B(); a->print(); }以上输出结果是什么?
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » class A { public: A() { num++; } virtual void print() { std::cout << num; } private: int num = { 0 }; }; class B : public A { public: virtual void print() { std::cout << num; } private: int num = { 0 }; }; int main() { A* a = new B(); a->print(); }以上输出结果是什么?
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » class A { public: A() { num++; } virtual void print() { std::cout << num; } private: int num = { 0 }; }; class B : public A { public: virtual void print() { std::cout << num; } private: int num = { 0 }; }; int main() { A* a = new B(); a->print(); }以上输出结果是什么?
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » class A { public: A() { num++; } virtual void print() { std::cout << num; } private: int num = { 0 }; }; class B : public A { public: virtual void print() { std::cout << num; } private: int num = { 0 }; }; int main() { A* a = new B(); a->print(); }以上输出结果是什么?