c++类结构体和函数的区别

比如wndclass结构体和CreateWindow()为何wndclass结构体封装得这些对象不用一个象CreateWindow()这样得简单的函数去实现,比如定义这样一个wndclass()函数,里面包含各种需要得参数(背景话刷,重画等等参数)类结构体和函数有什么区别
2026年09月26日 04:54
有5个网友回答
网友(1):

C++中的结构体与类的区别只在于结构体的成员默认为公有成员(public可见性),而类的成员默认为私有成员(private可见性),C++中的结构体不同于C语言里的结构体,C里的结构体只能封装一些单一的数据,不能含方法,但在C++的结构体内可以有构造函数,成员函数,还可以指定成员的访问权限(如public和private)。
 1、类可以被认为是结构体的一个升级版,它是由结构体演变过来的,在此基础上加了一些限制,以便更好实现面向对象的设计。结构体基本用在很多数据,需要一个结构体来封装这些数据。而类的话,是面向对象的思想,可以有很多接口让人调用,私有变量等外部不能调用,还有保护类型的变量。
  2、结构体也可以被认为是一种特殊的类,它不存在任何函数,构造和析构函数也没有,而且是一个公共的的类;相关推荐>>C++中适用于类和结构体的内存池模板类
  3、C++类和结构体概念基本一致,区别在于结构体在默认情况下成员是公共的(public),类在默认情况下成员是私有的(private),其他的都一样,类有的结构体也有。
  4、C++结构体内部成员变量及成员函数默认的访问级别是public,而c++类的内部成员变量及成员函数的默认访问级别是private。
  5、C++结构体的继承默认是public,而c++类的继承默认是private。
  6、类要加上public变成共有的才能被访问,而结构本身就是共有的可直接访问。
  7、C++中struct与class本质上相同的,只是默认的访问权限不同,之所以要保留struct,是为了与C兼容。
  与C中结构体不同的是,C++中定义结构体变量时可以不加struct关键字,如:
  struct student{
  char *name;
  int age;
  };
  student s;//在C中的话要写成struct student s;

网友(2):

网友(3):

C++中的结构体与类的区别只在于结构体的成员默认为公有成员(public可见性),而类的成员默认为私有成员(private可见性),C++中的结构体不同于C语言里的结构体,C里的结构体只能封装一些单一的数据,不能含方法,但在C++的结构体内可以有构造函数,成员函数,还可以指定成员的访问权限(如public和private).

网友(4):

结构体默认成员函数是public C++默认是private,两者没什么大的区别
因为C++是从C扩展而来,C是没有class的,所以C++里继承C的一些东西就用的是结构体

网友(5):

当用win32 创建窗口的时候 不是先设计窗口类 创建窗口 显示窗口,更新窗口和消息循环么
其实向你说的仅仅一个createWindow ()函数是不能创建好好一个窗口的 要知道C++ 不是为了很好的进行封装么,当你将需要的参数放在类中,类里的函数就能调用这些参数, 要是仅仅的设计这个函数 请问得传多少参数才好,MFC 就是对这些底层函数的封装