c++结构体属性单独赋值与括号赋值的区别

单独赋值方式为:

#include <iostream>
using namespace std;

struct man{
	int height;
	int weight;
};

int main(){
	man jack;
	jack.height = 175;
	jack.weight = 120;
	cout << jack.height <<"," << jack.weight;
	return 0;
}

当我们使用括号赋值方式时

构造函数的名称需要注意,它会影响你可以合法创建结构体的方式。如果构造函数名称与结构体名称相同,此时man这个结构体名称成为了一个函数,创建时就必须要给它赋值,否则编译器会因为认为你传入的参数不对(这里一开始我是这样理解的,但随着深入研究,我发现C++的结构体完全可以视作一个类了。我们知道,构造一个类时,如果这个类的构造函数有参数,那么你必须在构造这个类时传入参数)而报错;

构造函数与结构体名称相同的好处是我们可以在创建时就直接同时赋值(一条语句):

#include <iostream>
using namespace std;

struct man{
	int height;
	int weight;
	man(int h, int w){	height = h; weight = w;	}
};

int main(){
	man jack(175,120);
	cout << jack.height <<"," << jack.weight;
}

如果构造函数名称与结构体名称不同,man仍然可以用作创建结构体的数据类型声明,构造函数(或者称之为结构体的方法吧)可以在之后对结构体的值进行修改,当然你也可以单独修改:

#include <iostream>
using namespace std;

struct man{
	int height;
	int weight;
	change(int h, int w){	height = h; weight = w;	}
};

int main(){
	man jack;
	cout << jack.height <<"," << jack.weight;
	cout << endl;
	
	jack.change(170, 110);
	cout << jack.height <<"," << jack.weight;
	cout << endl;
	
	jack.height = 175;
	jack.weight = 120;
	cout << jack.height <<"," << jack.weight;
	cout << endl;
	
	return 0;
}

括号赋值方式赋值更方便快捷。

总结一点,C++的结构体基本可以当做无法设置public、private等权限的类来使用了。所以,当我们不需要设置权限时,写结构体来代替类更方便。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值