编程语言
首页 > 编程语言> > C++中类与对象

C++中类与对象

作者:互联网

本周学了C++的类与对象,复习一下。

目录

1.类与对象的定义

C++中的类可以看作是C语言中结构体的升级版。C语言中结构体只等定义变量,而C++中的类则可以定义变量和函数。
一个例子:

class Student{
public:
    char *name;
    int age;
    float score; //成员变量
    void say()
    {
        cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
    }//成员函数
};

而通过类定义出来的变量也有特定的称呼,叫做“对象”。

2.类的使用

先看一段代码

#include <iostream>
using namespace std;
class Student {
	public:
		char *name;
		int age;
		float score;
		void say() {
		cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
		}
};
int main() {
	//通过类来定义变量,即创建对象
	class Student stu1;  /*我们先通过 class 关键字定义了一个类 Student,然后又通过 Student 类创建了一个对象 stu1。变量和函数都是类的成员,创建对象后就可以通过点号.来使用它们。*/
	//为类的成员变量赋值
	stu1.name = "王某";
	stu1.age = 19;
	stu1.score = 100;
	//调用类的成员函数
	stu1.say();
	return 0;
}

我们先通过 class 关键字定义了一个类 Student,然后又通过 Student 类创建了一个对象 stu1。变量和函数都是类的成员,创建对象后就可以通过"."来使用它们。

3.C++类成员的访问权限

C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。在类的内部,无论成员被声明为 public、protected 还是 private,都是可以互相访问的,没有访问权限的限制。
在类的外部,只能通过对象访问成员,并且通过对象只能访问 public 属性的成员,不能访问 private、protected 属性的成员。

#include <iostream>
using namespace std;
//类的声明
class Student{
private:  //私有的
    char *m_name;
    int m_age;
    float m_score;
public:  //共有的
    void setname(char *name);
    void setage(int age);
    void setscore(float score);
    void show();
};
//成员函数的定义
void Student::setname(char *name){
    m_name = name;
}
void Student::setage(int age){
    m_age = age;
}
void Student::setscore(float score){
    m_score = score;
}
void Student::show(){
    cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<endl;
}
int main(){
    Student stu;
    stu.setname("王某");
    stu.setage(15);
    stu.setscore(92.5f);
    stu.show();
    Student *pstu = new Student;
    pstu -> setname("李某");
    pstu -> setage(16);
    pstu -> setscore(96);
    pstu -> show();
    return 0;
}

成员函数 setname()、setage() 和 setscore() 被设置为 public 属性,是公有的,可以通过对象访问。
private 后面的成员都是私有的,直到有 public 出现才会变成共有的;public 之后再无其他限定符,所以 public 后面的成员都是共有的。
成员变量大都以m_开头,这是约定成俗的写法,不是语法规定的内容。以m_开头既可以一眼看出这是成员变量,又可以和成员函数中的形参名字区分开。
以 setname() 为例,如果将成员变量m_name的名字修改为name,那么 setname() 的形参就不能再叫name了,得换成诸如name1、_name这样没有明显含义的名字,否则name=name;这样的语句就是给形参name赋值,而不是给成员变量name赋值。
因为三个成员变量都是私有的,不能通过对象直接访问,所以必须借助三个 public 属性的成员函数来修改它们的值。

4.总结

这只是类的简单的知识,如何定义类,创建对象,类的用法和类成员的知识。

标签:name,对象,成员,C++,void,Student,public,中类,变量
来源: https://blog.csdn.net/ssz3148812410/article/details/121888394