菜单 搜索

每天一个C/C++知识点

媒体资源网 http://www.allchina.cn 2023/6/16

class和struct的区别C语言struct和C class的区别C语言中struct是复杂的数据结构,不能定义函数,但是可以定义函数指针C 中struct可以定义成员函数,可以被继承,可以实现多态

struct Person { string name; int age; int (*setName)(string name);//函数指针};

struct Person { string name; int age; int setName(string name)//成员函数 { name = name; }};C 中struct和class的区别C 中struct和class的区别是对于成员函数和成员变量的访问权限及继承方式不同,class默认是private,而struct中默认是public的class还可以用于表示模板类型,struct则不可以

#include using namespace std;class Base {public: void print() { cout << "base..." << endl; }};class Deriveda:Base { };class Derivedb:public Base { };struct SDeriveda:Base { };struct SDerivedb:private Base { };int main(){ Deriveda Da; Derivedb Db; SDeriveda Sda; SDerivedb Sdb; //Da.print();编译错误,对象不能访问私有成员 Db.print(); Sda.print(); // Sdb.print();编译错误,对象不能访问私有成员 return 0;}

template class className { private: T var; ... .. ... public: T functionName(T arg); ... .. ...};