类与对象的定义

类(class)是C++有别于C语言的最重要的概念之一,正是因为有了类的概念,C++才拥有了所谓面向对象(OOP,即Object Original Programming)的编程模式,那么类究竟是什么呢?
单从语法层面讲,类其实就是增加了函数的结构体。而从逻辑层面讲,类是增加了数据行为的结构体。类跟结构体一样,先要自定义类类型,然后再使用类类型去定义变量(对象)。以下是示例代码:

点击查看代码
// 自定义一个类类型:A 
class A 
{ 
public: // 成员限定符 【公有的 、公开的】 

 int x; 
 float y; 

 // 类方法 
 void showInfo() 
 { 
 cout << "x:" << x << endl; 
 cout << "y:" << y << endl; 
 } 
};

注意:类中如没有特殊的说明他的成员访问会被限定为私有的(只允许在类内部访问数据),因此一般会使用public 来修饰。后期再对成员限定符进行详细学习,现阶段可以把所有的限定设置为public公有的。

点击查看代码
#include <iostream> 
#include <cstring> 

using std::cout; 
using std::endl; 

class Cat 
{ 
public: // 把以下所有成员设置为公有的成员 
// 设计用于描述猫这个种类的【属性】变量 
int Num ; 
char Name[32]; 

// 设计用于描述猫这个种类的【行为】函数 
void Eat() 
{ 
 cout << Name << " : 正在吃鱼.." << endl; 
} 

void SetVal( int num , const char *name ) 
{ 
 Num = num; 
strcpy(Name, name); 
} 

void Show() 
{ 
 cout << "Num : " << Num << endl; 
 cout << "Name : " << Name << endl; 
} 
}; 



int main(int argc, char const *argv[]) 36
{ 
 Cat Tom ; // 实例化一个对象 Tom 
 Tom.SetVal( 1 , "Tom" ); 
 Tom.Eat(); 
 Tom.Show(); 

return 0; 
}
![image](https://img2024.cnblogs.com/blog/3655216/202508/3655216-20250829182446232-1843699284.png)

所谓类方法,就是类里面的函数接口,这是与结构体有重大区别的地方之一。类方法实际上表达的是一个对象的行为属性,比如小猫类 Kitty 应该要提供如下类方法,来表达一只小猫的正常的行为:
image
调用这些类方法的形式也非常简单,跟普通的函数调用没有什么区别,只不过类方法一般是通过类的对象来调用的(静态对象可以通过对象调用也可以通过类调用),例如:
image

类成员权限限定符:
image

点击查看代码
class A 
{ 
 int w; // 默认:私有成员 

private: // 以下是私有成员 
 int x; 

protected: // 以下是保护成员 
 int y; 

public: // 以下是公有成员 
 int z; 

 void f() 
 { 
 // 类方法可以访问任何类成员 
 x = 100; 
 y = 200; 
 z = 300; 
 } 
}; 

int main(void) 
{ 
 A a; 

 // 错误!私有和保护成员都不能通过对象访问 
 a.x = 100; 
 a.y = 200; 

 // 正确!公有成员可以通过对象访问 
 a.z = 300; 
 a.f(); 
}

一般而言,对于类成员的权限限定的基本原则是:
image

posted @ 2025-08-29 18:30  Lè_Sage  阅读(12)  评论(0)    收藏  举报