c++学习笔记
码生
所有的创新都起源于模仿。
展开
-
gcc编译cpp文件为什么要加-lstdc++
gcc可以编译c++文件,也可以编译c文件,但默认是编译c文件的,加-lstdc++表示编译c++文件,即链接c++库,加-lc表示链接c库,默认情况下就是链接c库,所以如果编译c文件可以不加-lc。原创 2017-11-14 09:37:23 · 10204 阅读 · 0 评论 -
c++中lambda表达式的用法
基础用法两点注意1.基础用法c++11提供了对匿名函数的支持,称为Lambda函数(也叫Lambda表达式)。Lambda表达式把函数看作对象。Lambda表达式可以像对象一样使用,比如将它们赋给变量和作为参数传递,还可以像函数一样对其求值。Lambda表达式本质上与函数声明非常类似。Lambda表达式具体形式如下: [capture](parameters)mutable->return-ty原创 2017-11-14 16:56:52 · 9090 阅读 · 0 评论 -
c++中虚继承
为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。 class 派生类名:virtual 继承方式 基类名 virtual是关键字,声明该基类为派生类的虚基类。 在多继承情况下,虚基类原创 2017-11-14 21:51:28 · 269 阅读 · 0 评论 -
c++面向对象笔记
1.继承类型继承形式如下:class derived-class: access-specifier base-class当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种类型。继承类型是通过上面讲解的访问修饰符 access-specifier 来指定的。我们几乎不使用 protected 或 private 继承,通常使用 public 继承。当使原创 2017-11-15 10:26:58 · 302 阅读 · 0 评论 -
c++中的异常
一个简单的例子:#include <iostream>using namespace std;double division(int a, int b){ if(b == 0){ throw "divided by zero!"; } return (a / b);}int main(){ try{ double z = divis原创 2017-11-15 10:35:45 · 402 阅读 · 0 评论