C++类构造函数学习

一、遇到问题

在学习ns3源码的过程中,经常遇到这样的结构

TcpCongestionOps::TcpCongestionOps () : Object ()
{
}

这些双冒号和单冒号到底是什么意思呢?其实这是C++中的类构造函数。
(注意:只有构造函数可以初始化成员变量)

二、类构造函数学习

参考链接:c++类构造函数&析构函数

在用冒号的形式写类构造函数时,我们需要注意:

  1. 只有构造函数可以初始化成员变量
  2. 构造函数和成员变量需要在类中预先声明
  3. 结构ClassA::fundctionA(int m_member):member(m_member){}。是在函数functionA中,对成员变量member赋值m_member。

三、示例代码

#include<iostream>
using namespace std;

class Food{
	public:
		Food(int len);
		Food(int m_rate,int m_cost);
		int rate;
		int cost;
};

//only constructors take member initializers
Food::Food(int len):rate(),cost(){
	printf("using Food(int len)\n");
}

Food::Food(int m_rate,int m_cost):rate(m_rate),cost(m_cost){
	printf("using Eat(int m_rate,int m_cost)\n");
}

int main ()
{
	Food food1(1);
//	printf("rate:%d\n",food.rate);
	cout << "rate : " << food1.rate <<endl;
	cout << "cost : " << food1.cost <<endl;
	
	Food food2(1,1);
	cout << "rate : " << food2.rate <<endl;
	cout << "cost : " << food2.cost <<endl;
	return 0;
}

代码输出:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值