![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
小白827
不要懒惰
展开
-
C++四舍五入与小数点后有效位数
#include <cmath>double round(double r){ return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);}强制保留两位小数#include <iomanip>double res = num / (count + 1);cout << setiosflag...原创 2020-03-23 10:03:33 · 1418 阅读 · 0 评论 -
访问控制protected和抽象基类
1、访问控制:protected关键字protected与private相似,在类外只能用公有类成员来访问protected部分中的类成员。private和protected之间的区别只有在派生类中才表现出来。派生类的成员可以直接访问基类的保护成员,但不能直接访问基类的私有成员。因此,对于外部世界来说,保护成员的行为与私有成员相似;但对于派生类来说,保护成员的行为与公有成员相似。2、抽象基类...原创 2019-12-17 23:17:29 · 378 阅读 · 0 评论 -
虚函数
1、虚函数的工作原理通常,编译器处理虚函数的方法是:给每个对象添加一个隐藏成员。隐藏成员中保存了一个指向函数地址数组的指针。这种数组称为虚函数表。虚函数表中存储了为类对象进行声明的虚函数的地址。例如,基类对象包含一个指针,该指针指向基类中所有虚函数的地址表。派生类对象将包含一个指向独立地址表的指针。如果派生类提供了虚函数的新定义,该虚函数表将保存新函数的阿地址;如果派生类没有重新定义虚函数,该...原创 2019-12-14 22:37:35 · 93 阅读 · 0 评论 -
静态联编和动态联编
将源代码中的函数调用解释为执行特定的函数代码块被称为函数名联编静态联编:在C++中,由于函数重载的缘故,编译器必须查看函数参数以及函数名才能确定使用哪个函数。编译器可以在编译过程完成这种联编。在编译过程中进行联编被称为静态联编动态联编:虚函数使得编译器必须生成能够在程序运行时选择正确的虚方法的代码,这种被成为动态联编将派生类引用或指针转换为基类引用或指针被称为向上强制转换例如:Brass...原创 2019-12-14 21:54:51 · 100 阅读 · 0 评论 -
类继承
1、继承从一个类派生出另一个类时,原始类成为基类,继承类称为派生类class TableTennisPlayer//基类{private: string firstname; string lastname; bool hasTable;public: TableTennisPlayer(const string & fn = "none", const s...原创 2019-12-14 21:08:52 · 205 阅读 · 0 评论 -
类和动态内存分配
1、动态内存和类(1)静态类成员class stringBad{private: char * str; int len; static int num_strings;//静态成员变量public: StringBad(const char * s); };//类外初始化静态变量int StringBad::num_strings = 0;特点:1、无论创建了多少...原创 2019-12-02 22:43:46 · 317 阅读 · 1 评论 -
类和对象
小tipsclass Stock{public: Stock(string str); Stock(){cout<<"Stock "<<endl;}; ~Stock(); const Stock & topval(const Stock &s) const; void show(); enum {Months = 12}; static ...原创 2019-11-23 19:02:50 · 77 阅读 · 0 评论 -
类中运算符重载
运算符重载运算符重载时一种形式的C++多态1、运算符重载的格式:operator op(parameter-list);其中,op必须时有效的C++运算符。2、调用方式obj = obj1 + obj2;obj = obj1.operator+(obj2);在运算符表示法中,运算符左侧的对象是调用对象,运算符右侧的是作为参数被传递的对象。3、重载限制至少有一个操作上是用户定...原创 2019-11-23 18:37:19 · 5067 阅读 · 0 评论 -
名称空间
1、在默认情况下,在名称空间中声明的变量,其链接性时外部2、关于using编译指令和using声明比较使用using声明类似于声明了相应的变量,如果这个函数里面已经有对应的变量则会编译错误。但是如果在函数外部,即全局范围,变量名和全局变量名冲突则不会报错,个人理解两个变量处于不同命名空间,不会发生冲突。使用using 编译指令,则类似名称解析。如果使用using编译指令导入一个已经在函数中...原创 2019-11-23 15:31:00 · 70 阅读 · 0 评论 -
静态变量和函数
作用域和链接作用域描述了名称(变量)在文件的多大范围可见。链接性描述了名称(变量)如何在不同文件间共享链接性为外部:可以在文件间共享链接性为内部:只能在同一个文件的函数共享C++变量的作用域:局部变量只在定义它的代码块中可用。静态变量作用域取决于如何定义类中声明的成员变量作用域为整个类名称空间中声明的变量作用域为整个名称空间C++函数的作用域:整个类或整个名称空间,...原创 2019-11-23 14:57:54 · 645 阅读 · 0 评论