C++笔记2(类)
程序员文章站
2022-07-15 16:51:44
...
类
在C语言中我们学习过结构体,C++中又新加了类。两者之间还是有一些差别的。
类和结构体的区别
class与struct在编译过程中基本没有区别,只有缺省的权限不同,class是私有的而struct是共有的。
成员变量和成员函数(属性和方法)
class Student {
public:
int age;
int getAge(){
return age;
}
};
类和对象
类是指一类人或物,例如:人类,学生,动物,植物。
对象则是指一个单独的个体。
访问修饰符
-
private:私有权限的成员变量和成员函数,只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问。
-
protected:可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问。
-
public:公有权限的成员变量和成员函数,可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问。
封装
封装其实就是吧函数和变量编写到类中。
目的:保护数据
简单示例:
#include <iostream>
using namespace std;
class Student {
private:
int age;
public:
int getAge(){
return age;
}
void setAge(int a) {
if (a <= 0 || a > 100){
cout << "请输入正确的年龄" << endl;
return;
}
age = a;
}
};
int main()
{
Student s;
s.setAge(19);
cout << s.getAge() << endl;
return 0;
}
构造函数
- 构造函数是类的一种特殊成员函数,一般情况下,构造函数是专门用于初始化对成员变量的,所以最好不要在构造函数中进行与对象的初始化无关的操作。
- 构造函数的函数名一定与类的名称完全相同,而且没有返回值(不是说返回值是void或者int,而是说不允许指定返回值)。
- 默认存在。
示例:
#include <iostream>
using namespace std;
class Student {
private:
int age; //成员变量(属性)
public:
Student() {
age = 1;
}
Student(int a) {
age = a;
}
int getAge(){ //成员函数(方法)
return age;
}
void grpwup() {
age++;
}
};
int main()
{
Student s;
s.grpwup();
cout << s.getAge() << endl;
Student s1(1);
s1.grpwup();
cout << s1.getAge() << endl;
return 0;
}
析构函数
- 对象销毁时调用的函数。
- 默认存在。
- 不支持函数重载。
#include <iostream>
using namespace std;
class Student {
private:
int age; //成员变量(属性)
public:
Student() {
age = 1;
}
Student(int a) {
age = a;
}
~Student() //析构函数
{
cout << "game over" << endl;
}
int getAge(){ //成员函数(方法)
return age;
}
void grpwup() {
age++;
}
};
int main()
{
Student s;
s.grpwup();
cout << s.getAge() << endl;
Student s1(1);
s1.grpwup();
cout << s1.getAge() << endl;
return 0;
}
因为析构函数在对象销毁时使用,所以以上程序在最后会打印game over。
推荐阅读
-
php扩展开发笔记(2)多个源码文件的配置和编译
-
四川传媒学院2014年艺术类成绩查询 PHP组合查询多条件查询实例代码第1/2页
-
Java 中的正则表达式 博客分类: Java基础笔记 正则表达式JavaUnixF#J2SE
-
Java 中的正则表达式 博客分类: Java基础笔记 正则表达式JavaUnixF#J2SE
-
sinatra 博客分类: C++读书笔记 Sinatra
-
Spark2.x学习笔记:9、 Spark编程实例
-
android源码学习 yii2源码学习笔记十九)
-
thinkphp教程之RBAC详解2之RBAC类内容和使用流程讲解
-
方便实用的PHP生成静态页面类非smarty第1/2页
-
SharePoint 2013 App Development读书笔记2