关于Struct 与 Class的区别(class 定义对象时候不能赋初值的方法何原因)

关于Struct 与 Class的区别(包括class 定义对象时候不能赋初值的方法何原因)

C++中struct和class的区别? 
答: 
(1)关于继承和访问权限,struct默认继承和访问权限均为public,class均为private; 
(2)关于模版,在模版中,类型参数前面可以使用class或typename,不能使用struct。

 ( 3 ) Struct 里面没有默认无参构造函数, 而Class里面有默认的无参构造函数
关于Struct 与 Class的区别(详细):链接: http://blog.youkuaiyun.com/nocky/article/details/6195556




// class.cpp: 定义控制台应用程序的入口点。(可以运行)
#include "stdafx.h"


struct STUDENT {
	int a;
	int b;
	char c;
};



int main()
{
	//定义Struct结构体的对象方法
	struct STUDENT a, b;  //(C风格)
	STUDENT c, d;  //(C++风格)


	//对象的赋初值方法,
	STUDENT Student;
	Student.a = 1;
	Student.b = 2;
	Student.c = 'a';


    return 0;
}




//-----------------------------------------------------分割线-----------------------------------------------------------


注意:如果数据成员是私有的,或者类中有private 或 protected 的成员,就不能够使用下面这种方法初始化(如图):见谭浩强C++:p69-70

struct Time
{
	int hour;
	int minute;
	int sec;
};


Time t1 = { 14, 56, 30 };





//-----------------------------------------------------分割线-----------------------------------------------------------
但是亲测在Win10专业版  VS2017版本里面测试编译不通过,
修正:原因已经找到了:没有在Class 或者 Student 里面没有写 public的(有多个参数的)构造函数~~~






//-----------------------------------------------------分割线-----------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偕臧x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值