随笔分类 -  语言-c++

摘要:非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,任意修改该类中成员的操作都是不允许的(因为隐含了对this指针的const引用);唯一的例外是对于mutable修饰的成员。 加了const的成员函 阅读全文
posted @ 2021-12-04 22:17 北极星! 阅读(171) 评论(0) 推荐(0) 编辑
摘要:1,pair的应用 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是 阅读全文
posted @ 2021-12-04 21:42 北极星! 阅读(598) 评论(0) 推荐(0) 编辑
摘要:C++中的双冒号 :: 第一种,类作用域,用来标明类的变量、函数 Human::setName(char* name); 第二种,命名空间作用域,用来注明所使用的类、函数属于哪一个命名空间的 std::cout << "Hello World" << std::endl; 第三种,全局作用域,用来区 阅读全文
posted @ 2021-12-02 16:06 北极星! 阅读(89) 评论(0) 推荐(0) 编辑
摘要:静态多态、动态多态 静态多态:程序在编译阶段就可以确定调用哪个函数。这种情况叫做静态多态。比如重载,编译器根据传递给函数的参数和函数名决定具体要使用哪一个函数。动态多态:在运行期间才可以确定最终调用的函数。需要通过虚函数+封装+继承实现。 虚函数 虚函数都必须有定义 虚函数一般用在继承中。多个子类继 阅读全文
posted @ 2021-10-18 16:13 北极星! 阅读(517) 评论(0) 推荐(0) 编辑
摘要:最近使用scanf发现了自己对scanf函数还是不太了解,主要出现在无意中出现的一个错误; scanf正确的写法是,scanf中以什么格式输入变量,则变量的类型就应该是什么格式,如下面scanf输入到变量的格式是%c形式,因此变量sum的类型必须是char型,要不存储到sum中的数值会出错; 注意: 阅读全文
posted @ 2021-08-23 11:29 北极星! 阅读(363) 评论(0) 推荐(0) 编辑
摘要:转载请注明出处,版权归作者所有 lyzaily@126.com yanzhong.lee 作者按: 从这篇文章中,我们主要会认识到一下几点: 一、不类中的特征标相同的同名函数,它们是不同的函数,原因就是类具有“名称空间”的功能; 二、类的对象是不包含类声明中所提到的成员函数所占的内存,对象只包含类声 阅读全文
posted @ 2021-08-16 21:05 北极星! 阅读(1490) 评论(0) 推荐(0) 编辑
摘要:1、C++中, 构造函数和析构函数可以被显示调用. 显示调用默认构造函数的语法: a.A::A();(不能写成a.A();) , 显示调用非默认构造函数的语法: a.A::A(7);(不能写成a.A(7);); 显示调用析构函数的语法: a.A::~A();(可以写成a.~A();) 。 2、显示调 阅读全文
posted @ 2021-08-16 19:23 北极星! 阅读(290) 评论(0) 推荐(0) 编辑
摘要:CTypeA(const CTypeB& b)CTypeA& operator=(const CTypeB& b)一直没弄懂这两个有什么区别。只知道,重载了=号,下面复制的时候就不调用拷贝构造函数了。 CTypeA a1; CTypeB b1; a1 = b1; 那什么时候会有区别? class C 阅读全文
posted @ 2021-07-29 20:47 北极星! 阅读(676) 评论(0) 推荐(0) 编辑
摘要:1.成员函数和非成员函数 其实简单来说成员函数是在类中定义的函数,而非成员函数就是普通函数,即不在类中定义的函数,其中非成员函数比较典型的是友元函数。 2.详细解释 成员函数是类定义的一部分,通过特定的对象来调用。成员函数可以隐式访问调用对象的成员,而无须使用成员操作符。 友元函数不是类的组成部分, 阅读全文
posted @ 2021-07-05 15:31 北极星! 阅读(229) 评论(0) 推荐(0) 编辑
摘要:C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个泛型类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 阅读全文
posted @ 2021-06-18 14:04 北极星! 阅读(597) 评论(0) 推荐(0) 编辑
摘要:c++main函数char * argv[]是个指针数组,元素是指针,为何argv[1]得到不是地址? 照我的理解char *argv[]保存的应该是一组指针,即地址,每个地址中保存的是char类型变量,为command line arguments。因此如果输出argv[1],argv[2]等得到 阅读全文
posted @ 2021-06-17 09:44 北极星! 阅读(83) 评论(0) 推荐(0) 编辑
摘要:printf里面打印指针的问题 而在c语言中,使用printf只需要使用不同的格式就可以区分打印出是字符串还是指针变量的值: cout和cin后面跟指针的问题 cout<<mm 和cin>>nn;它是可以自己识别mm和nn是不是指针变量吗? 答:cin后面只能跟char*的指针,别的类型指针(eg: 阅读全文
posted @ 2021-06-15 20:40 北极星! 阅读(1352) 评论(0) 推荐(0) 编辑
摘要:一、时间复杂度 举例练习 二、空间复杂度 既然时间复杂度不是用来计算程序具体耗时的,那么我也应该明白,空间复杂度也不是用来计算程序实际占用的空间的。 空间复杂度是对一个算法在运行过程中临时占用存储空间大小的一个量度,同样反映的是一个趋势,我们用 S(n) 来定义。 计算空间复杂度:看储存单元随n如何 阅读全文
posted @ 2021-04-19 19:18 北极星! 阅读(87) 评论(0) 推荐(0) 编辑
摘要:参考:https://blog.csdn.net/duan19920101/article/details/50617190 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的 阅读全文
posted @ 2021-02-21 19:51 北极星! 阅读(1742) 评论(0) 推荐(1) 编辑
摘要:c++中“::”和“:”啥意思 (1)“::” 1)类作用域操作符。“::”指明了成员函数所属的类。如:M::f(s)就表示f(s)是类M的成员函数。 2)表示“域操作符”.例:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给 出f的定义,那么在类外定义f时, 就要写成 阅读全文
posted @ 2021-02-19 21:29 北极星! 阅读(8979) 评论(0) 推荐(1) 编辑
摘要:首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式). 那么显示声明的构造函数和隐式声明的有什么区别呢? 我们 阅读全文
posted @ 2021-02-01 22:19 北极星! 阅读(324) 评论(0) 推荐(0) 编辑
摘要:向量有一些有用的函数,你可以在这里看到。在本部分的课程中,你将会学习在面向对象编程课程中需要使用的函数。 assign Assign 可帮助你快速填充具有固定值的向量。例如,以下代码 vector<int> intvariable; intvariable.assign(10,16); 可以用 10 阅读全文
posted @ 2021-01-17 14:42 北极星! 阅读(195) 评论(0) 推荐(0) 编辑
摘要:Python 与 C++ 向量 Python 和 C++ 对比 我们再回到向量!你已经学习了如何声明一个空的向量。 在下面的代码中,你可以比较 Python 列表和 C++ 向量的语法。你会看到,C++ 向量使用名为 push_back 的方法,将值附加到向量的末尾。通过代码 vector<floa 阅读全文
posted @ 2021-01-17 14:37 北极星! 阅读(210) 评论(0) 推荐(0) 编辑