C++学习13 类class和结构体struct的区别

C++保留了C语言的 struct,并且加以扩充。在C语言中,struct 只能包含数据成员,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含数据成员,又可以包含成员函数。

在C++中,没有抛弃C语言中的 struct 关键字,其意义就在于给C语言程序开发人员有一个归属感,并且能让C++编译器兼容以前用C语言开发出来的项目。

C++ struct 示例:

#include<iostream>
using namespace std;
struct Student{
    char *name;
    float score;
    Student(char*, float);
    void say();
};
Student::Student(char *name, float score){
    this->name = name;
    this->score = score;
}
void Student::say(){
    cout<<name<<"的成绩是 "<<score<<endl;
}
int main(){
    Student stu("小明", 95.5f);
    stu.say();
    return 0;
}

该程序可以正常编译并运行,说明 struct 默认的成员都是 public 属性的,否则不能通过对象访问成员函数。如果将 struct 关键字替换为 class,那么就会编译报错。

posted on 2016-08-22 21:10  白宫飘红旗  阅读(175)  评论(0编辑  收藏  举报