0%
这是一片思考的空间 -- arthinking
Spring 重构&代码整洁之道 软件设计 JVM 并发编程 数据结构与算法 分布式 存储 网络 微服务 设计模式
Java技术栈 - 涉及Java技术体系

C++语法笔记 - 类与对象

类的定义:

class 类名
{
public:
外部接口
protected:
保护型成员
private:
私有成员
};

类的成员函数:

声明和实现:

函数原型的声明要写在类体中,原型说明了函数的参数表和返回值类型,而函数的具体实现写在类之外。具体的实现形式:

返回值类型 类名::函数成员名(参数表) //可带默认新参,在类的声明中给出
{
函数体
}

内联成员函数:

隐式声明:在类中实现

显示声明:在类中跟其他函数一样声明,在类外定义时,使用inline关键词:

inline void Clock :: showTime(){}

构造函数:

如果类中没有写构造函数则编译器会自动声明默认的构造函数,如果声明了构造函数,则不再自动生成。

对象所占据的内存空间只是用于存放数据成员,函数成员不在每一个对象中存储副本。

复制构造函数:

复制构造函数是一种特殊的构造函数,具有一般构造函数的所有特性,其形参时本类的对象的引用。其作用是使用一个已经存在的对象(由拷贝构造函数的参数指定)去初始化同类的一个新对象。

如果没有定义类的复制构造函数,系统就会在必要时自动生成一个默认的赋值构造函数,这个构造函数把初始对象的每个数据成员的值都复制到新建立的对象中。

class Point{
public:
Point(Point &p);
};
Point :: point(Point &p){}

复制构造函数被调用的三种情况:

用类的一个对象去初始化该类的另一个对象:Point A(1,2); Point B(A); 调用函数时,进行形参和实参结合时:Point A(); f(A); 函数的返回值时类的对象,函数执行完成后返回调用者时

析构函数:

析构函数用来完成对象被删除前的一些清理工作,析构函数在对象的生存期即将结束的时刻被自动调用的。

析构函数不接受任何参数,但可以时虚函数。

一般来说如果希望程序在对象被删除之前的时刻自动完成某些事情而不需要借助调用函数,就可以把它们写到析构函数中。

类的组合:

类的组合就是一个类内嵌套其他类的对象最为成员的情况,它们之间的关系是一种包含与被包含的关系。

组合类构造函数定义的一般形式:(使用初始化列表)

类名 :: 类名(形参表) : 内嵌对象1(形参表), 内嵌对象2(形参表),…
Line :: Line(Point xp1, Point xp2) : p1(xp1), p2(xp2){}

前向引用声明:

是在引用未定义的累之前,将该类的名字告诉编译器,使编译器知道那是一个类名。

当使用前向引用声明时,只能使用被声明的符号(如作为函数的参数),而不能设计类的任何细节。

欢迎关注我的其它发布渠道

订阅IT宅
内功修炼
Java技术栈
Java架构杂谈是IT宅精品文章公众号,欢迎订阅:
📄 网络基础知识:两万字长文50+张趣图带你领悟网络编程的内功心法 📄 HTTP发展史:三万长文50+趣图带你领悟web编程的内功心法 📄 HTTP/1.1:可扩展,可靠性,请求应答,无状态,明文传输 📄 HTTP/1.1报文详解:Method,URI,URL,消息头,消息体,状态行 📄 HTTP常用请求头大揭秘 📄 HTTPS:网络安全攻坚战 📄 HTTP/2:网络安全传输的快车道 📄 HTTP/3:让传输效率再一次起飞 📄 高性能网络编程:图解Socket核心内幕以及五大IO模型 📄 高性能网络编程:三分钟短文快速了解信号驱动式IO 📄 高性能网络编程:彻底弄懂IO复用 - IO处理杀手锏,带您深入了解select,poll,epoll 📄 高性能网络编程:异步IO:新时代的IO处理利器 📄 高性能网络编程:网络编程范式 - 高性能服务器就这么回事 📄 高性能网络编程:性能追击 - 万字长文30+图揭秘8大主流服务器程序线程模型
📄 Java内存模型:如果有人给你撕逼Java内存模型,就把这些问题甩给他 📄 一文带你彻底理解同步和锁的本质(干货) 📄 AQS与并发包中锁的通用实现 📄 ReentrantLock介绍与使用 📄 ReentrantReadWriteLock介绍与使用 📄 ReentrantLock的Condition原理解析 📄 如何优雅的中断线程 📄 如何优雅的挂起线程 📄 图解几个好玩的并发辅助工具类 📄 图解BlockingQueue阻塞队列
📄 消息队列那么多,为什么建议深入了解下RabbitMQ? 📄 高并发异步解耦利器:RocketMQ究竟强在哪里? 📄 Kafka必知必会18问:30+图带您看透Kafka
📄 洞悉MySQL底层架构:游走在缓冲与磁盘之间 📄 SQL运行内幕:从执行原理看调优的本质 📄 洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法