IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ 类的简单定义、实现、使用 -> 正文阅读

[C++知识库]C++ 类的简单定义、实现、使用

总结:

各标号解析(要点提示)

#0 类可以被名称空间包裹,使用时需要声明名称空间
#1 private 表示私有成员,不允许通过Person.lname / Person.fname[ ]常规方式访问。
#1 private 为默认,若不标出,也默认为private。
#2 定义常量使用 static const type variname value 形式。
使用static是因为,类在实例化啊之前是没有存储空间的,需要static来让编译器分配存储空间
#3 public 表示公有成员,可以通过公有成员访问私有成员。
#4 直接在类定义处写实现方法,则表示此为内联函数(inline)
#5 与类同名函数称为构造函数,实例化类时(创建对象)被自动调用
#5 构造函数可以重载。
#6 函数后增加const,表示此函数不改变该对象的数据成员(lname / fname)。
#7 构造函数允许不用返回值(也可以有返回值)。
#7 定义成员函数时,必须使用域解析符号::
#8 与类同名且前面有个‘~’,称为析构函数。
#8 析构函数在类访问过期(对象不再使用)后自动调用,(若代码中无析构函数,则类会默认创建析构函数)。
#x 同类之间可以直接赋值
#x 构造函数和析构函数不是必须的,但当未作定义时,系统也会默认生成空的构造/析构函数。
#x 对象是类的实例,对象的数据是独立的,函数是共用的。

定义类

Person.h

namespace PERSON{													#0
	class Person{
	private:														#1
	    static const int LIMIT = 25;								#2
	    string lname;
	    char fname[LIMIT];
	public:															#3
		Person()													#4
    	{
        	lname = "";
        	fname[0] = '\0';
    	}
	    Person(const string &ln, const char *fn = "Heyyou");		#5
	    void show(void) const;										#6
	    void FormalShow(void) const;
	    ~Person();
	};
}

实现类

Person.cpp

namespace PERSON{
	Person::Person(const string &ln, const char *fn)				#7
	{
	    lname = ln;
	    strcpy(fname, fn);
	}
	void Person::show(void) const
	{
	    cout << fname << lname << endl;
	}
	void Person::FormalShow() const
	{
	    cout << lname << fname << endl;
	}
	Person::~Person(void)											#8
	{
		//do nothing
	}
}

使用类

main.cpp

#Include "Person"
int main(void)
{
	using namespace PERSON;
	//初始化
	Person a;//自动调用构造函数Person() {lname = ""; fname[0] = '\0';}
	Person b("Jcak";//自动调用重载构造函数Person(const string &ln, const char *fn = "Heyyou");
	
	Person c = Person();//自动调用构造函数Person() {lname = ""; fname[0] = '\0';}
	Person d = Person("Jack");//自动调用重载构造函数Person(const string &ln, const char *fn = "Heyyou");
	
	Person e[3] = {		//一次三个,自动构造重载
	Person();
	Person("Jack")
	Person();
}
	//访问成员 
	a.show();
}

this 指针

this指针指代当前对象
使用时,一般来说,返回一个类,都是实例。
所以 ”成员函数定义时返回引用,实现时 返回 *this

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 11:59:07  更:2021-08-11 12:04:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:36:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码