Adro的作死笔记

Adro的作死笔记

找个工作我容易么我

  • 首页
  • 关于

深入理解cpp对象模型 第六章笔记

全局变量的初始化问题。 考虑在如下代码中,全局和静态变量都放在哪个段中,初始化顺序又如何 #include <iostream> #include <string> using namespace std; class nonPOD{ public: nonPOD(const string& s="default"):str(s){cout<<str<<" nonPOD ctor"<<endl;} nonPOD(const nonPOD& t):n(t.n),str(t.str+"_copy"){cout<<str<<" copy ctor"<<endl;} virtual ~nonPOD(){cout<<str<<" nonPOD dctor"<<endl;} int getn(){return n;}

2016年07月29日

深入理解cpp对象模型 第五章笔记

对于以下代码: #include <iostream> struct abase{ virtual ~abase()=0; //Oops, pure virtual dctor must be defined, or there would be a link error virtual void func()=0; virtual void func1()=0; protected: abase(char c=0):_ch(c){} char _ch; }; abase::~abase(){std::cout<<"abase dctor"<<std::endl;} abase::func(){} struct derivied:public abase{ void func(){} void func1(){} void func3(){abase::func();} }; int main(){ derivied d; return 0; } 纯虚函数可以被定义,但

2016年07月28日

convariant return type and override

我们都知道在类的继承体系中,想要override一个虚方法,要求新方法的函数返回类型以及函数签名同被覆盖的方法相同,也就是说,下面的代码: #include

2016年07月27日

const类和default constructor

今天实验程序的时候,出现这样一个问题: struct statictest{ // virtual void func(){} // virtual ~statictest(){} private: int n; }; int main(){ const statictest st; return 0; } $ make g++ -std=c++11 -Wall static.cpp -o static.out static.cpp:14:23: error: default initialization of an object of const type 'const statictest' without a user-provided default constructor const statictest st; ^ static.cpp:14:25:

2016年07月27日

aggregates and pod

这篇文章大部分整理自stackoverflow上的一篇讨论 还记得数组的花括号赋值么?还记得c语言中简单的结构体么?还记得c语言初始化结构体用

2016年07月26日

深入理解cpp对象模型 第四章笔记

第四章主要是对成员函数的讲解: 对于static成员函数: 不可以直接存取nonstatic成员 不可以是const限定的 对于非静态成员函数的处理

2016年07月26日

深入理解cpp对象模型 第三章笔记

前言描述了一个很有趣的问题,下面的类X,Y,Z,和A的sizeof各是多大? #include <iostream> struct X{}; struct Y:public virtual X{}; struct Z:public virtual X{}; struct A:public Y,public Z{}; int main(){ std::cout<<"X: "<<sizeof(X)<<std::endl; std::cout<<"Y: "<<sizeof(Y)<<std::endl; std::cout<<"Z: "<<sizeof(Z)<<std::endl; std::cout<<"A: "<<sizeof(A)<<std::endl; return 0; } $ ./sizeof.out X:

2016年07月24日

深入理解cpp对象模型 第二章笔记

构造函数部分: 先复习下primer对合成默认构造函数的叙述: 构造函数不能使用const限定符,一个const对象直到构造函数完成时才获得其“

2016年07月23日

cpp primer 第十五章笔记

终于到了第十五章了,复习大计实施的还不错~~ 动态绑定可以用指针或者引用实现 基类的析构函数一般都应该是virtual修饰的,因为通常我们会在一

2016年07月21日

cpp primer 第十四章笔记

第十四章主要讲运算符重载和类型转换(感觉每次第一句话都是废话): 不应该被重载的运算符:&& || ,因为无法保留其运算顺序(还有逻

2016年07月21日

cpp primer 第十三章笔记

嘿嘿,飙到第十三章了~~老司机的笑容像天上的弦月~~毕竟是补漏。。。 拷贝构造函数通常不应该是explicit的,参数必须为引用类型(常量引用

2016年07月20日

cpp primer 第七章笔记

第七章,终于到正题了,类: 只有在类中没有任何构造函数时,编译器才会生产合成默认构造函数;只有当类内部的内置类型被赋予类内初始值时,合成默认构

2016年07月20日

cpp primer 第六章笔记

第六章主要是函数相关的内容: 函数是可以没有定义只有声明的,只要你不用它(变量声明,类的前置声明也是)。。。 关于引用与指针,我觉得最重要的区别

2016年07月20日

cpp primer 第五章笔记

第五章讲解语句: 注意switch内部块中定义的变量,尽管在同一个作用域中(case后面不跟大括号的情况),但是只要是没有初始化的变量就不能使

2016年07月20日

cpp primer 第四章笔记

第四章主要是表达式相关的内容: 除了&& || ?: ,四种操作符外,其他操作符都没有定义运算顺序(重要) sizeof是一种运算符,它不

2016年07月19日

cpp primer 第三章笔记

第三章主要讲vector和string string到底是不是以\0结尾的?c++11中规定是。但是不要依赖这个特性,乖乖的用size();但

2016年07月19日

cpp primer 第二章笔记

第二章主要讲的是基本类型,需要注意的有: 同一个表达式混用有符号和无符号数,会自动转换成无符号 字面值前缀指定字符编码,后缀指定变量大小或种类 字

2016年07月19日

cpp primer 第一章笔记

第一章只是一个引入,要注意的有: std::cin在读到EOF的情形 #include <iostream> int main(){ int val; while(std::cin>>val){ std::cout<<val<<" "; } std::cout<<std::endl; std::cout<<"after loop,val= "<<val<<std::endl; return 0; } 测试发现最终结束时,输入C+D(EOF)

2016年07月19日

about

Adro,男,西电研狗,私以为生活习性可与草履虫相媲美。 平时除了调戏女朋友(括弧笑),喜欢嵌入式、撩拨linux、扯扯并发,聊聊服务器。身为

2016年07月17日

搬家记录

折腾了一上午,最后还是选择从hexo迁到hugo,记录一下~

2016年07月17日
More...

分类

  • development18
  • not-your-bussness1

标签

  • c++18
  • development18
  • 杂谈2

归档

  • 2016年07月20

标签云

c++ development 杂谈
RSS 订阅

Hello ,I'm Adro.
This is my blog, believe it or not.

Powered by hugo and Theme by hugo-pacman-theme © 2016 adro