随笔分类 -  C++pp

摘要:C++ 有一种让在命令行环境中运行的程序能够访问命令行参数的机制,方法是使用下面的 main() 函数: int main(int argc, char * argv[]) 例如: program17.8.2 编写一个程序,将键盘输入(直到模拟的文件尾)复制到通过命令行指定的文件中。 #includ 阅读全文
posted @ 2022-06-21 20:28 SanFranciscoo 阅读(229) 评论(0) 推荐(0) 编辑
摘要:1.流和缓冲区 p593 c++把输入和输出看作字节流。输入时,程序从输入流中抽取字节;输出时,程序将字节插入到输出流中。 管理输入包含两步: 将流与输入去向的程序关联起来 将流与文件连接起来 通常,通过缓冲区可以高效的处理输入和输出,缓冲区是用作中介的内存块。 键盘输入每次提供一个字符,在这种情况 阅读全文
posted @ 2022-06-21 12:36 SanFranciscoo 阅读(272) 评论(0) 推荐(0) 编辑
摘要:能使容器使用大括号进行初始化。 https://blog.csdn.net/qq_36546177/article/details/108763448 阅读全文
posted @ 2022-06-04 14:58 SanFranciscoo 阅读(5) 评论(0) 推荐(0) 编辑
摘要:标准模板库 迭代器 迭代器能够用来遍历容器的对象;函数对象是类似于函数的对象,可以是类对象或函数指针(包括函数名因为函数名被用作指针);STL 不是面向对象的编程,而是泛型编程; 模板类 vector p546 STL 在头文件 vector 中定义了一个 vector 模板;vector 模板使用 阅读全文
posted @ 2022-05-28 23:16 SanFranciscoo 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1. string 类 p531 1)构造函数 一个比较特殊的构造函数 template <class Iter> string (Iter begin, Iter end); // 范围包括 begin 在内,但不包括 end 例如: char c[] = "All's well that end 阅读全文
posted @ 2022-05-27 19:55 SanFranciscoo 阅读(125) 评论(0) 推荐(0) 编辑
摘要:1.友元类 1)格式 p489 friend class ClassName; 友元类的所有方法都可以访问原始类的私有成员和保护成员。 2)例子:Tv 类和 Remote (遥控器)类 将 Remote 类声明为 Tv 类的友元类;这同时意味着 Remote 类中有关于 Tv 类的代码,因此编译器必 阅读全文
posted @ 2022-05-08 20:17 SanFranciscoo 阅读(59) 评论(0) 推荐(0) 编辑
摘要:1.组合(包含):即创建一个包含其他类兑现的累 1)初始化被包含的对象 p439 构造函数可以使用成员初始化列表来初始化成员对象;对于成员对象,构造函数在成员初始化列表中使用成员对象名来调用特定的构造函数;初始化列表中的每一项都调用与之匹配的构造函数 class student { private: 阅读全文
posted @ 2022-04-24 20:42 SanFranciscoo 阅读(468) 评论(0) 推荐(0) 编辑
摘要:P415 1.抽象基类中的纯虚函数必须要在继承类中被实现,否则该继承类也称为抽象基类;则该继承类就不能创建对象。 2.注意不要将构造函数、析构函数和类的成员重载赋值运算符函数设置为纯虚函数;因为抽象基类中的纯虚函数必须要在继承类中被实现,而这些函数并不能在继承类中被继承(p430)(这些函数在继承类 阅读全文
posted @ 2022-04-16 22:15 SanFranciscoo 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1.公有继承 p392 1)格式 Class RatedPlayer:public TableTennisPlayer { ... }; 2)派生类构造函数中使用成员初始化列表将参数赋值给基类构造函数,来初始化基类成员 p395 class RatedPlayer:public TableTenni 阅读全文
posted @ 2022-04-11 11:52 SanFranciscoo 阅读(64) 评论(0) 推荐(0) 编辑
摘要:关于在一个类对象的成员函数中另一个类对象参数的私有数据成员 关于类成员函数中访问同类对象的私有成员,主要包含以下几种场景: a. 在C++的类的成员函数中,允许直接访问该类的对象的私有成员变量。 b. 在类的成员函数中可以访问同类型实例的私有变量。 c. 拷贝构造函数里,可以直接访问另外一个同类对象 阅读全文
posted @ 2022-04-05 17:03 SanFranciscoo 阅读(442) 评论(0) 推荐(0) 编辑
摘要:1.静态类成员 P349 静态类成员的特点:无论创建了多少对象,程序都只创建一个静态类变量的副本。即类的所有对象共享同一个静态成员。 不能在类声明中初始化静态成员变量;类的静态成员必须在类内声明,在类声明之外使用单独的语句来进行初始化,且在类外初始化时使用作用域运算符,但不使用关键字static。 阅读全文
posted @ 2022-04-03 20:54 SanFranciscoo 阅读(74) 评论(0) 推荐(0) 编辑
摘要:p332 需要引入头函数 <cstdlib> <ctime> rand()函数将一种算法用于一个初始种子值来获得随机数;这些数实际上是伪随机数,因为10次连续的调用通常生成10个同样的随机数。 srand()函数允许覆盖默认的种子值,重新启动另一个随机序列;可以使用time(0)的返回值来设置种子。 阅读全文
posted @ 2022-03-27 22:31 SanFranciscoo 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1.运算符重载 格式: operator(argument-list) 如: Time operator+(const Time &)const; ... Time Time::operator+(const Time & t) const { Time sum; sum.minutes = min 阅读全文
posted @ 2022-03-27 22:31 SanFranciscoo 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1.类方法可以直接访问类的private组件(p283);对于类的私有部分,在其中声明的成员只能通过成员函数进行访问;对于类的公有部分,在其中声明的成员可被使用类对象的程序直接访问。p287 2.定义位于类声明中的函数都将自动成为内联函数,在类声明中定义方法等同于用原型替换方法定义,然后在类声明后面 阅读全文
posted @ 2022-03-19 22:45 SanFranciscoo 阅读(254) 评论(0) 推荐(0) 编辑
摘要:p266 名称空间不能用于代码块中; 默认下名称空间中声明的名称的链接性为外部。 在开发程序时使用多个文件时,一种有效的组织策略是,使用头文件来定义用户的类型,为操作用户类型的函数提供函数原型;并将函数定义放在一个独立的源代码文件中。头文件和源代码文件一起定义和实现了用户定义的类型及其使用方式。最后 阅读全文
posted @ 2022-03-17 19:18 SanFranciscoo 阅读(43) 评论(0) 推荐(0) 编辑
摘要:1.c++ pp page 250 存储持续性:数据保留在内存中的时间;(注:自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。它们在程序开始执行其所属的函数或代码块时被创建,而不是程序运行到定义语句时才被创建) 作用域描述了名称在文件(翻译单元)的多大范围内可见。全局作用 阅读全文
posted @ 2022-03-15 23:02 SanFranciscoo 阅读(389) 评论(0) 推荐(0) 编辑
摘要:在按照c++ pp page255,尝试在一个cpp文件(翻译单元)中定义具有外部链接性的静态变量int x = 1,在另一个cpp文件中用 extern int x;引用声明时,运行会出现undefined reference to 'x'的错误。 两个文件分别如下: 接着F5编译,出现: 这时候 阅读全文
posted @ 2022-03-13 21:00 SanFranciscoo 阅读(4302) 评论(0) 推荐(4) 编辑
摘要:关于函数模板与泛型编程的关系,见 https://blog.csdn.net/baidu_37964071/article/details/78235247 函数模板是通用的函数描述,它们使用泛型来定义函数,其中的泛型可用具体的类型(如int 或 double)替换。 1.模板并不创建任何函数,只告 阅读全文
posted @ 2022-03-11 20:37 SanFranciscoo 阅读(364) 评论(0) 推荐(0) 编辑
摘要:c++ pp page 227 1.函数重载的关键是函数的参数列表(函数特征标);如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则它们的特征标相同。 仅返回类型不同的函数不能重载,重载的特征标必须不同。 2.编译器在检查函数特征标时,将把 一个类型的引用 和该类型本身视为同一个特征标。 阅读全文
posted @ 2022-03-11 20:06 SanFranciscoo 阅读(116) 评论(0) 推荐(0) 编辑
摘要:(c++ pp page 225) 1.对于带参数列表的函数,必须从右向左添加默认值。即,如果要为某个参数设置默认值,则必须为它右边所有的参数提供默认值。 int f(int n,int m = 5,int j);//invalid 2.只有原型指定了默认值。函数定义与没有默认参数时完全相同。 阅读全文
posted @ 2022-03-10 22:01 SanFranciscoo 阅读(103) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示