赞
踩
c中的struct不可以含有成员函数,而c++中的struct可以。
C语言
c中struct 是一种用于组合多个不同数据类型的数据成员的方式。struct 声明中的成员默认是公共的,并且不支持成员函数、访问控制和继承等概念。C中的struct通常被用于将多个相关数据组合在一起,但没有类的其他功能。
struct Point {
int x;
int y;
};
int main() {
struct Point p1;
p1.x = 5;
p1.y = 3;
return 0;
}
C++
struct 是一种用于定义复合数据类型的方式,与C相似。然而,C++中的struct不仅可以包含数据成员,还可以包含成员函数、访问控制和继承等概念,与类(class)的功能非常接近。换句话说,C++中的struct和class的区别主要是默认的访问控制和继承方式不同。
struct Point {
int x;
int y;
void printCoordinates() {
std::cout << "x: " << x << ", y: " << y << std::endl;
}
};
int main() {
Point p1;
p1.x = 5;
p1.y = 3;
p1.printCoordinates();
return 0;
}
c中的struct不可以含有成员函数,而c++中的struct可以。
c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private
// 使用 struct 定义 struct MyStruct { int x; // 默认 public void foo() { /* ... */ } // 默认 public private: int y; // 可以显式声明为 private }; // 使用 class 定义 class MyClass { int x; // 默认 private void foo() { /* ... */ } // 默认 private public: int y; // 可以显式声明为 public }; int main() { MyStruct structObj; structObj.x = 10; // 可以直接访问 structObj.foo(); // 可以直接访问 MyClass classObj; // classObj.x = 10; // 错误,无法直接访问私有成员 // classObj.foo(); // 错误,无法直接访问私有成员 return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。