详解C++编程中类的声明和对象成员的引用
C++的类是创建对象的模板,包含成员变量与成员函数。本文将解析类的声明语法、对象实例化的多种方式,并详细说明如何通过对象名(.)、指针(->)及引用变量来安全、正确地访问公有成员。
理解类的声明与实例化
类(Class)是一种用户自定义的复杂数据类型,它定义了数据的结构以及操作这些数据的方法。在程序中使用类之前必须先进行声明。需要注意的是,类声明仅定义数据格式,并不占用内存空间;而类类型的变量(即对象)才分配实际内存,这个过程称为类的实例化。
以下是一个基础的 Student 类定义示例:
class Student{
//成员变量
char *name;
int age;
float score;
//成员函数
void say(){
printf("%s的年龄是 %d,成绩是 %f\n", name, age, score);
}
};
上述代码演示了类的基本结构:以关键字 class 开头,后接类名 Student,主体由花括号 {} 包裹。必须在声明末尾添加分号 (;)。此时尚未对成员变量初始化,仅在创建对象后才能赋值。
第1步:标准创建对象实例
声明类后,即可像基本类型一样定义变量。通常省略 class 关键字以符合习惯:
Student LiLei; //创建对象
除了单个对象,还可以定义对象数组或指针:
Student all_student[100]; //数组
Student *pointer; //指针
第2步:在类声明时直接定义对象
C++允许在声明类的同时创建对象,如下所示:
class Student{
// ... 成员声明 ...
}stu1, stu2;
也可以省略类名直接定义匿名对象。虽然语法合法,但这种方式灵活性差且可读性不佳,工程实践中不提倡使用。
第3步:编写完整运行示例
要使外部能访问类成员,必须使用访问控制符。以下是结合对象访问与指针操作的完整 main 函数示例:
#include <stdio.h>
class Student{
public: // 必须使用 public 才能被外部访问
char *name;
int age;
float score;
public:
void say(){
printf("%s的年龄是 %d,成绩是 %f\n", name, age, score);
}
};
int main(){
// 1. 直接通过对象名访问
Student stu;
stu.name = "小明";
stu.age = 15;
stu.score = 92.5f;
stu.say();
// 2. 通过指针访问
Student *pt_stu = &stu;
pt_stu->name = "李雷";
pt_stu->age = 16;
pt_stu->score = 80;
pt_stu->say();
return 0;
}
运行结果将输出两个不同属性的学生信息。该示例展示了两种核心访问机制的差异。
C++对象成员的引用方法
在程序中访问对象成员主要有三种方式,需严格区分语法符号。
- 通过对象名访问:使用成员运算符
.。
只能访问stud1.num = 1001; // 正确 // display(); // 错误:未指定所属对象public成员。若成员为私有(private),则无法从类外访问。 - 通过指向对象的指针访问:使用间接成员运算符
->。Time t, *p; p = &t; // p 指向对象 t cout << p->hour; // 访问 hour 成员p->hour等价于(*p).hour和t.hour。注意,指针必须指向具体的对象实例,不能直接获取类的地址。 - 通过对象的引用访问:引用是变量的别名,两者共享同一内存单元。
引用在定义时必须初始化,此后访问行为与原对象完全一致。Time t1; Time &t2 = t1; // t2 引用 t1 cout << t2.hour; // 等效于 t1.hour
以上就是C++类声明与对象成员引用的详细内容,更多关于C++面向对象编程的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









