![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ Primer
L_J_SHOU
从蛛丝马迹中寻找结果
展开
-
C++ Primer----一个关于 vector 的有趣的问题
大家请看下面的代码,请问 输出结果是??/** * @file vector-destroy.cc * @brief an interesting problem regarding vector * @author shoulinjun@126.com * @version 0.1.00 * @date 2014-03-16 */#include #include u原创 2014-03-16 20:21:56 · 1353 阅读 · 3 评论 -
C++ Daily 《6》---- 类静态对象与函数静态对象
C++ 的一个哲学基础是,你不应该为你使用的东西付出代价。class 拥有一个 static 成员,即使从未被用到,它也会被构造和析构;而 函数拥有一个 static 成员, 如果这个函数从未被调用,则这个对象不会被构造。做个简单的实验:#include using namespace std;class Printer{ friend Printer& the原创 2014-05-13 10:50:29 · 863 阅读 · 1 评论 -
C++ Daily 《3》----构造函数可否是虚函数
C++ 中构造函数可否是虚函数?绝不要!!而且,在构造函数中调用虚函数也是不提倡的行为,因为会引发预想不到的结果。因为,在 derived class 对象构造的过程中,首先调用的是基类的构造函数,等基类构造结束,才开始构造派生类的部分。这个过程中,编译器将该对象视为 基类,而非派生类(因为,派生类对象的专属部分还未初始化!!!)所以,如果在构造函数中调原创 2014-04-28 22:15:18 · 1080 阅读 · 0 评论 -
C++ Daily《2》----vector容器的resize 与 reserve的区别
C++ STL 库中 vector 容器的 resize 和 reserve 区别是什么?1. resize 改变 size 大小,而 reserve 改变 capacity, 不改变size.2. vector内部其实包含了三个指针,如下图:resize()------改变 finish 指针reserve()----改变 end_of_storage 指针3原创 2014-04-26 13:16:27 · 1387 阅读 · 2 评论 -
C++ Daily 《1》----关于对象
1. 问题请问如下的一个 class 的一个对象占了多少内存? 具体包含哪些东西? non-static 变量? static member 变量? member function?? virtual function??class A{public: virtual void print();private: int a; static double b;};原创 2014-04-25 23:06:41 · 887 阅读 · 0 评论 -
C++ Daily 《5》----虚函数表的共享问题
问题:包含一个以上虚函数的 class B, 它所定义的 对象是否共用一个虚函数表?分析: 由于含有虚函数,因此对象内存包含了一个指向虚函数表的指针,但是这个指针指向的是同一个虚函数表吗?实验如下:class A{public: virtual void print() { cout << "print A:" << endl;}private: int原创 2014-05-11 11:21:12 · 1708 阅读 · 0 评论 -
C++ Primer---- 奇怪的 protected 成员
protected 成员在 C++ Primer 第四版中有如下描述:可以认为 protected 标号是 private 和 public 的混合: 1. 像 private 成员一样, protected 成员不能被类的用户访问。 2. 像 public 成员一样, protected 成员可被该类的派生类访问。此外, protected 还有另一个重要性质: 3.原创 2014-03-19 19:37:30 · 1137 阅读 · 0 评论 -
C++ Daily 《4》----一个简单的 int to string 的方法
经常会在项目中用到 int to string#include #include #include using namespace std;int main(void){ ostringstream num; num << 123; string str = num.str(); cout << str << endl; return 0;}原创 2014-04-29 16:31:04 · 1229 阅读 · 2 评论 -
C++ Primer----智能指针类 2
指针带给了 C++巨大的灵活性,然而同样也带来无数的问题,悬挂指针,内存泄漏等。int *pInt = new int(1);// Do not forgetdelete pInt;智能指针就是一种能够有效避免悬挂指针的方法。通过一个类,来管理指针的复制,delete 等。从而使用户可以放心地使用指针。一种智能指针的实现方法是,通过一个计数,追踪当前指向同一块地址的指原创 2014-04-14 21:30:30 · 1139 阅读 · 0 评论 -
浅谈C++的this指针
一个关于C++很坑的问题,能够对this指针能够有更好的认识代码1234567891011121314151617181920class A {public: A(int x=0): a(x) {} void print() { cout "print ok" } void print_int() {原创 2014-12-07 16:26:19 · 1337 阅读 · 0 评论