我是靠谱客的博主 秀丽大炮,最近开发中收集的这篇文章主要介绍c++构造函数中调用构造函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 本人不是很懂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++构造函数中调用构造函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部