C++风格的结构体与类类型

结构体类型

C++风格的结构体

#include <iostream>  
using namespace std;  
#include<string>  
  
struct student  
{  
private: // 数据是不能让外界直接调用修改的,但可以通过成员函数间接修改调用成员变量  
    int mark;  
    string name;  
    char sex;  
public: // 在student定义的作用域内均可调用——由于我们在main函数外部定义的struct变量,因此它的作用域是global  
    void get_value(int vmark, string vname, char vsex)  
    {  
        mark = vmark;  
        name = vname;  
        sex = vsex;  
    }  
    int out_mark(void)  
    {  
        cout << mark << endl;  
        return 0;  
    }  
};  
  
int main()  
{  
    student Student;  
    Student.get_value(89, "超级霸霸强", 'f'); // 用公有成员函数简介初始化成员变量  
    Student.out_mark(); // 调用公有成员函数  
}

 

C++风格的结构体已经与class类型相差无几,但是C语言中的struct类型变量只能存放数据不能再其中定义成员函数。

C++风格的类(class)类型

#include <iostream>  
using namespace std;  
#include<string>  
  
class student // 仅将struct关键字换为class  
{  
private: // 数据是不能让外界直接调用修改的,但可以通过成员函数间接修改调用成员变量  
    int mark;  
    string name;  
    char sex;  
public: // 在student定义的作用域内均可调用——由于我们在main函数外部定义的struct变量,因此它的作用域是global  
    void get_value(int vmark, string vname, char vsex)  
    {  
        mark = vmark;  
        name = vname;  
        sex = vsex;  
    }  
    int out_mark(void)  
    {  
        cout << mark << endl;  
        return 0;  
    }  
};  
  
int main()  
{  
    student Student;  
    Student.get_value(89, "超级霸霸强", 'f'); // 用公有成员函数简介初始化成员变量  
    Student.out_mark(); // 调用公有成员函数  
}  

 

C++风格中结构体类型与类类型的异同点

相同点:在C++中已经对struct进行了扩充,不仅可以声明成员变量,还可以声明成员函数,class关键字本身就是从struct发展而来的,所以struct支持的,class都支持。

不同点:class默认的成员访问限定符是private,struct默认的成员访问限定符是public。

因此struct定义的变量中的成员变量在默认情况下(默认限定符为public),外界可以直接访问修改成员变量的值,而class在默认情况下是使用的private限定符,外界在默认情况下是无法访问调用private所声明的成员函数和成员变量。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

肥肥胖胖是太阳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值