介绍
C++本没有结构体都是从C沿袭过来的,所以自然结构体也不如C结构体的定义丰富,所以在C++中,结构体与类并没有太大区别,甚至可以看作是亲兄弟。对于结构体,他的所有属性都是public而类所有属性都是private。仅此
应用
我们都有oop的概念,所以对于类的内存模型也会知道,其实类的内存模型完全适用于结构体,两者并无差距。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| #pragma once #ifndef _MYSTRU_H_ #define _MYSTRU_H_
#ifndef ConfidetReclude #include <iostream> using namespace std; #endif
struct MyStru { int param; MyStru() : param(0) {cout << "无参构造函数" << endl;}; MyStru(int p) : param(p) { cout << "有参构造函数,param值:" << param << endl; }; bool operator< (MyStru& b) { return param < b.param; } bool operator> (MyStru& b) { return param > b.param; } void printParam() { cout << param << endl; } virtual void attriMethod(); };
struct sunStru : public MyStru { void attriMethod() { cout << "儿子的方法" << endl; } };
[[endif]] _MYSTRU_H_
void MyStru::attriMethod() { cout << "外部重写了" << endl; }
|
如代码所写的一样,结构体可以使用构造函数,也可以使用析构函数,也可以继承重写,所以C++的结构体就是类。
结语
本文解释了结构体和类的相似处,以至于可以看作是一个东西。