【C++初阶】基本语法 3——类和对象

mac2024-04-11  39

类和对象 一.结构体在C和C++中不同 1.在C++中,用结构体定义变量不需要加struct,而C不行。 2.在C++中,可以定义空结构体,大小为1,而C不行。 3.在C++中,可以在结构体中声明甚至定义函数,在C中只能定义函数指针。 4.在C++中,成员函数可以直接访问结构体内的的成员变量而无需传入,在C中函数和结构并无直接联系。

成员函数不影响结构体的大小 因为成员函数是放在公共区域的,只是在这个结构体的域中而已

二.类 类是一种特殊的结构体,在上述结构体中,加入public:,把struct改成class就成了一个简单的类

访问限定符: public:正常访问 private:只能在类内部访问 protected:目前跟private没有区别

1.访问限定符只是在编译阶段生效,编译好后,在运行阶段并没有限定。 2.结构体也能使用访问限定符,只是一般不使用,因为它是用来兼容c结构体的 3.结构体中默认为public,类中默认为private

三.this指针 一般成员函数中都含有this指针,这个指针指向调用这个成员函数的对象。

成员函数中,this指针中的成员函数不需要使用this指针来访问,直接访问即可。

this的类型是当前类类型的指针,this是一个常量指针,不能更改指向

#include <iostream> using namespace std; class ct{ int a; public: double b; char c; void test() { } void changeA(int i) { a = i; } //成员函数中可以直接使用自己的成员变量 void printA() { printf("%d\n", a); } protected: void printB(); }; void ct::printB() { printf("%.2lf\n", b); } int main() { ct c; ct d; ct * pc = nullptr; c.changeA(5); c.printA(); d.changeA(6); d.printA(); pc->test(); //cout << sizeof(ct) << endl; return 0; }
最新回复(0)