![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象程序C++
文章平均质量分 80
NightHacker
不是所有学计算机的都会修电脑
展开
-
面向对象C++知识点汇总笔记03
成员对象的构造函数的参数必须由类的构造函数在initializer_list中提供。与成员对象一样,常量和引用成员必须在构造函数定义中使用初始化式而不是赋值进行初始化。除非绑定到引用或用于初始化命名对象,否则临时对象将在创建它的完整表达式的末尾销毁。在非静态成员函数中,关键字this是指向函数被调用对象的指针。结构体和类的区别:在结构体中的成员是公共的,在类中是私有的。临时对象可以用作const引用或命名对象的初始化式。在某些类中,它们的数据成员是另一个类的类型。必须在类的构造函数执行之前构造成员对象。..原创 2022-08-26 00:09:03 · 193 阅读 · 0 评论 -
面向对象程序设计(基于C++)笔记5.19(关于模板的使用)
多态性通过虚函数表来实现。但对于一些比如形状这种抽象的类,这种代码是很难实现的。class Shape { public: virtual void rotate(int); virtual void draw(); virtual bool is_closed(); …}; /* it is difficult to define rotate and draw operations for some general shapes */......原创 2022-08-25 20:10:04 · 138 阅读 · 0 评论 -
面向对象C++知识要点汇总笔记01
如果返回值结果为假,那么函数会互换他们的位置 如果返回结果为真,就保持原来的位置不变。参数传递和函数返回的语义是初始化(不是赋值),return语句被认为用来初始化函数类型的临时对象,这里的i和r相当于共用了一个memory,而x是另外开了一个存储空间copy了i的值。T&:实参的类型必须与形参的类型完全匹配,实参必须是一个变量(左值)一般来说,内联函数提高了效率,但增加了可执行文件的长度。不会改变函数语义,从而消除了函数的额外执行开销。在不同的非命名空间范围中声明的函数是不可以重载的。原创 2022-08-24 16:39:40 · 163 阅读 · 0 评论 -
面向对象程序设计(基于C++)笔记(Excetion Handling)
程序员会试图预防意外情况发生,C++异常就为处理这种情况提供了一种功能强大而灵活的工具。异常处理分为三部分:1、引发抛出异常2、捕获异常3、使用try块把业务代码和错误处理混合在一起,其实是一种不好的代码逻辑,维护性、可读性和性能都会下降好处:只用一个catch就可以捕捉派生类 两种实现差别:第一种用基类的对象去捕获派生类的对象,就可能会发生数据成员切片现象。如果我们抛出的对象的数据类型和catch的类型不一样时是不可以的,只有下面这种情况可行[1] if H is the same type as E.原创 2022-06-02 14:26:41 · 150 阅读 · 0 评论 -
面向对象程序设计(基于C++)笔记5.26
一个是类型参数,一个是非类型参数template<typename T, int i> class Buffer { T v[i]; int sz;public: Buffer():sz(i) { } …};Buffer<char,127> cbuf;Buffer<Record,8> rbuf;!!!模板参数必须是常量•Example: void f(int i) { ...原创 2022-05-26 14:26:05 · 105 阅读 · 0 评论 -
关于move、friend的使用和隐式转换,面向对象(基于C++)笔记5.5
•A friend class must be previously declared in an enclosing scope or defined in the non-class scope immediately enclosing the class that is declaring it a friend class X { … }; namespace N { class Y { friend class X; friend class Z; .原创 2022-05-18 22:09:20 · 210 阅读 · 0 评论 -
运用C++实现复数幂(涉及大整数)
单点时限:2.0 sec内存限制:512 MB问题描述复数整数c(实部和虚部均为绝对值不超过1000的整数)和整数n(0≤n≤1000),一个空格分隔。输入格式给定一个复数c和一个整数n,计算c^n,特别的我们补充定义0^0=1。输出格式在一行中输出计算结果的“复数整数” 。保证至少 65% 的数据不需要实现大整数运算就可以得到正确答案。样例:input:2+i 2output:3+4i问题分析:...原创 2022-05-13 15:42:47 · 595 阅读 · 0 评论 -
C++ 关于派生类的使用(课程笔记5.12)
派生类永远不会继承赋值运算符和复制构造函数。您应该自己定义复制派生类的语义。 如果将派生类对象复制到基对象中,则会出现切片问题。 使用基指针或基引用可以避免切片问题。原创 2022-05-12 14:42:40 · 341 阅读 · 0 评论 -
C++运用move构造matrix类
PROBLEM:matrix.h + matrix.cpp Define a class Matrix to implement a concept – matrix of integers. •The numbers of rows and columns are provided by the user of the class. In addition, define an exception type Matrix_exception , which is the inner c..原创 2022-05-08 21:40:01 · 508 阅读 · 0 评论