Processing math: 0%

11 2017 档案

摘要:访问成员函数返回的是引用,front,back,at,和下表,如果一个容器是const,返回的则是const的引用,如果容器不是const,则返回的是普通引用。 是否返回的是引用,关键是看表达式在左值还是在右值,如果在右值,返回的就是元素的一个拷贝,如果在左值,返回的是一个引用对象。 在使用auto 阅读全文
posted @ 2017-11-27 17:13 niudong 编辑
摘要:C++中的输入缓冲区,当我们从键盘输入字符串的时候,需要敲一下回车才能将这个字符串输入到缓冲区中,敲入的这个回车键会被换成换行键,这个换行符也同样存储在缓冲区中。 cin读取数据是从缓冲区中读取数据的,如果缓冲区为空,cin的成员函数会阻塞等待数据的到来,一旦缓冲区中有数据,就会触发cin的成员函数 阅读全文
posted @ 2017-11-23 19:55 niudong 阅读(2260) 评论(0) 推荐(0) 编辑
摘要:C++中函数重载使用顶层const修饰参数和不使用const修饰参数效果是一样的,如果定义了这样的重载函数会报函数重定义的错误。 追其原因,C++中的函数传递方式有三种,一种是值传递,就是拷贝,一种是指针传递,在C++中进行了更高层次的抽象,因此一般建议不要使用,第三种就是引用传递。 对于值传递而言 阅读全文
posted @ 2017-11-23 12:12 niudong 阅读(1019) 评论(0) 推荐(0) 编辑
摘要:static_cast 静态类型转换。 在编译的时候C++编译器会做类型检查,基本类型能转换,指针类型不进行转换。 C语言中隐式类型转换的地方均可以使用static_cast。 reinterpreter_cast 重新解释类型 若不同类型之间,进行强制类型转换,用reinterpret_cast< 阅读全文
posted @ 2017-11-16 10:40 niudong 阅读(166) 评论(0) 推荐(0) 编辑
摘要:函数模版和同名普通函数在同一个作用域中,会优先调用那个函数? 函数模型在进行调用的时候会进行严格的类型匹配,而普通函数在调用的时候,会进行函数参数类型转换(前提是自动类型转换)。 调用函数模版,本质是类型参数化,将要严格的按照类型进行匹配,不会进行自动类型转换 调用普通函数,可以进行隐式的数据类型转 阅读全文
posted @ 2017-11-15 13:34 niudong 阅读(1359) 评论(0) 推荐(0) 编辑
摘要:C++中没有java中接口的概念,但是可以使用抽象类来模拟java中的接口。 工程上的多继承 工程开发中的多继承几乎是不被使用的 多继承带来的代码的复杂性,远远大于其代码带来的便利性。 多继承对代码的维护产生灾难性的后果 在设计上,任何有多继承的地方,都可以用单继承来代替 C++支持多继承,多继承有 阅读全文
posted @ 2017-11-14 18:25 niudong 阅读(1320) 评论(0) 推荐(0) 编辑
摘要:C++中多态的实现原理 当类中声明虚函数时,编译器会在类中生成一个虚函数表 虚函数表是一个存储类成员函数指针的数据结构 虚函数表是由编译器自动生成与维护的 virtual成员函数会被编译器放入虚函数表中 存在虚函数时,每个对象中都有一个指向虚函数表的指针(vptr指针) C++内存模型中,会将对象中 阅读全文
posted @ 2017-11-13 17:38 niudong 阅读(178) 评论(0) 推荐(0) 编辑
摘要:C++中允许多继承,因此会出现同时继承多个父类变量的情况,也就是说,正常的继承是一棵树,而多继承的二义性使得继承成为了一个图。在C++中通过virtual关键字,来防止这种情况的发生。问题的本质在于,对于父类中的变量,有多种不同的形式来进行访问父类中的变量,解决问题的办法是在出现问题的类上,加一个v 阅读全文
posted @ 2017-11-13 13:12 niudong 阅读(928) 评论(0) 推荐(0) 编辑
摘要:在C++中进行操作符重载的时候,前置++返回的是一个引用。 这就设计到了对于基本变量进行前置操作时候的理解了。 例如,对于int类型变量,在进行前置++的时候,是会将i进行加1,然后返回i的引用。而i++是先创建一个i的副本,然后在对i进行加1,最后返回i的副本的值(注意这里是值而不是引用)。 通常 阅读全文
posted @ 2017-11-12 12:05 niudong 阅读(1818) 评论(0) 推荐(0) 编辑
摘要:C++编译器提供的初始化方案: 构造函数的调用方法是自动调用,也就是隐式调用,按照规则进行调用,也就是按照类名.类名()这种方式调用。 可以通过构造函数显示的初始化类的属性 类没有写构造函数,C++编译器会自动生成一个默认的构造函数。 如果都设置成为显示初始化,那么当你定义一个对象数组的时候,是没有 阅读全文
posted @ 2017-11-11 19:02 niudong 阅读(1422) 评论(0) 推荐(0) 编辑
摘要:C++编译器对Struct做了功能增强,因此,可以实现和class一样的作用,不同的是,在class中定义的属性或者是方法,在没有加修饰符的情况下使用的是private,而在struct中使用的修饰符是public,这就是区别。 C++中类对象的初始化和类对象的赋值是两个不同的概念。 阅读全文
posted @ 2017-11-10 19:57 niudong 阅读(139) 评论(0) 推荐(0) 编辑
摘要:在C语言中使用const来定义一个变量,可以通过变量类型的指针形式来进行修改,而C++中增强了这种表现形式,使得即使通过类型变量指针也不能对变量进行修改。 在C++中const和宏是有区别的。 const和#define 宏定义,在编译阶段会被完全的替代,因此在没有定义取消宏(#undefine)之 阅读全文
posted @ 2017-11-09 15:04 niudong 阅读(584) 评论(0) 推荐(0) 编辑
摘要:随便写点什么,最近做实验效果老不好,都要疯了。 前几天,刚刚明白了,为什么要定义内积运算,这是因为矩阵乘法的基本运算单元就是所谓的内积。 内积运算是将两个向量映射成为一个数值,使用空间几何的相关知识方便的进行解释。 A * B = |A| * |B| * cos(\alpha) 这个公式我想 阅读全文
posted @ 2017-11-06 10:46 niudong 阅读(761) 评论(0) 推荐(1) 编辑

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