
c++
yufanghu
这个作者很懒,什么都没留下…
展开
-
运算符重载限制 不能重载的运算符
1.重载后的运算符必须至少有一个操作符是用户定义的类型。2.使用运算符不能违反运算符原来的句法规则。3.不能新建运算符4.不能重载: sizeof , . , .* , :: , ?: , const_cast, dynamic_cast, reinterpret_cast, static_cast5.只能通过成员函数重载的运算符: = , ( ) , [ ] , ->...原创 2018-06-21 14:34:02 · 2072 阅读 · 0 评论 -
static_cast、dynamic_cast、reinterpret_cast、const_cast
static_cast1. 基础类型之间互转。如:float转成int、int转成unsigned int等2. 指针与void*之间互转。如:float*转成void*、CBase*转成void*、函数指针转成void*、void*转成CBase*等3. 派生类指针【引用】转成基类指针【引用】。如:Derive*转成Base*、Derive&转成Base&等4. 非virtual...转载 2018-06-29 14:15:36 · 326 阅读 · 0 评论 -
C++ 虚函数之对象切片
对象切片出现在多态处理对象时传值引起的。传地址之所以不会出现切片因为:地址都相同的长度,派生类对象的地址与基类对象有相同的地址,基类可以透明的操作派生类对象例如:#include <stdio.h>#include <iostream>using namespace std;class Pet{ string pName;public: Pet(const string&a...原创 2018-06-26 18:05:20 · 402 阅读 · 0 评论 -
C++ 虚析构函数 虚构造函数
构造函数不能为虚的,是因为它是构造对象的入口,虚函数的存在方式是一张虚表,虚表是附在对象上的, 也就是对象才会有序表地址,构造函数是对象的入口,因此如果构造函数为虚的那么对象是无法构造的 析构函数可以为虚的常常必须为虚的,否则会造成不一察觉的泄露 构造函数与析构函数不会发生动态捆绑,只有成员的“本地”版本被调用。所以即使在基类中调用其它可以动态绑定的函数也不会调用子类中的函数 例: ...原创 2018-06-27 14:20:26 · 938 阅读 · 0 评论 -
cef3 webkit 内核 总览
做cef这一块有一段时间了,当时废了不少精力,才一两个月没有用就差点忘记完了。。。。。心痛 // Create a ClientApp of the correct type. CefRefPtr<CefApp> app; ClientApp::ProcessType process_type = ClientApp::GetProcessType(command_line...原创 2018-07-19 11:10:23 · 535 阅读 · 0 评论 -
C++11 lamda 匿名函数
lamda函数:一个可调用的代码单元,可理解为一个未命名的内联函数。 既然是函数,那么定义就和函数类似了,一个返回类型,一个参数列表,一个函数体,多了一个捕获列表 [捕获列表](参数列表) -> 返回类型 { 函数体;} 其中:捕获列表和函数体是必不可少的,捕获列表不为空指的是'[]'不为空,里面的捕获值通常为空 例: auto f = [] {return 1;} 1.捕获列表...原创 2018-07-24 22:17:11 · 273 阅读 · 0 评论