概述
本人不是很懂c++,只是平时仿真的时候,用一点,对于其一些约定就不是很熟,于是今天就栽在一个bug上了。
示例代码如下:
#include <iostream>
using namespace std;
class Sender{
public:
Sender(uint32_t number){
Sender(number,1000);
}
Sender(uint32_t number,uint32_t mtu){
m_number=number;
m_mtu=mtu;
}
void Print(){
std::cout<<m_number<<std::endl;
}
private:
uint32_t m_number;
uint32_t m_mtu;
};
int main(){
Sender sender(10);
sender.Print();
return 0;
}
执行程序,Print函数输出的是一个很大垃圾数值。问题就是就出在析构代码,Sender(number,1000);调用完事之后,直接被析构了。
Sender(uint32_t number){
Sender(number,1000);
}
修改的做法:
class Sender{
public:
Sender(uint32_t number):Sender(number,1000){
}
Sender(uint32_t number,uint32_t mtu){
m_number=number;
m_mtu=mtu;
}
void Print(){
std::cout<<m_number<<std::endl;
}
private:
uint32_t m_number;
uint32_t m_mtu;
};
[1]c++构造函数中调用构造函数
最后
以上就是秀丽大炮为你收集整理的c++构造函数中调用构造函数的全部内容,希望文章能够帮你解决c++构造函数中调用构造函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复