C++
猪八戒下凡
好好想想
展开
-
深入C++拷贝构造函数
先从我最近遇到的一个诡异的现象说起,来看一段代码:#includeusing namespace std;class test{public: test(){} test(test &t) { data = t.data; } test func(test t)转载 2014-05-16 22:36:02 · 599 阅读 · 0 评论 -
C++对象析构函数解析示例
一、基类析构函数为虚函数#include using namespace std;class Point{public: Point(){ cout << "Point()" << endl; } virtual ~Point(){ cout << "~Point()" << endl; }};class Po原创 2015-06-05 20:16:42 · 798 阅读 · 0 评论 -
关于类成员函数中访问同类对象的私有成员
关于类成员函数中访问同类对象的私有成员,主要包含以下几种场景:a. 在C++的类的成员函数中,允许直接访问该类的对象的私有成员变量。b. 在类的成员函数中可以访问同类型实例的私有变量。c. 拷贝构造函数里,可以直接访问另外一个同类对象(引用)的私有成员。d. 类的成员函数可以直接访问作为其参数的同类型对象的私有成员。举例描述上述知识:1).在拷贝构造转载 2015-06-24 22:17:03 · 2646 阅读 · 1 评论 -
C++ 成员函数 const 重载
众所周知,C++类实现函数重载有两种情况:函数参数的类型不同,参数的个数不同。而与函数的返回值没有什么关系。还有一种类成员函数重载,它并不要求函数的参数类型不同。下面给出例子:#include using namespace std;class A{public: A(int a):_a(a){} void print()const//函数体中不能修改数据成员对象,否原创 2015-05-18 21:24:08 · 1536 阅读 · 0 评论 -
C++ 成员函数返回引用,三种获取返回值的效果
这个实验需要以下的代码:class Test{public: Test(){cout << "Test" << endl;} ~Test(){cout << "~Test" << endl;} Test(const Test &right) { cout << "Test(const)" << endl; this->a =原创 2015-06-22 23:48:04 · 3723 阅读 · 0 评论 -
解决头文件相互包含问题的方法
目录(?)[+] 所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数。 一般情况下,C/C++要求所有的类型必须在使用前被定义,但是在一些特殊情况下,这种要求无法满足,例如,在类CMyView中保留了一个非模式对话框对象指针,该对象用于显示/修改一些信息。为了实现对话框"应用"按钮,把对话框做的修改立刻更新到v转载 2015-05-16 17:51:28 · 462 阅读 · 0 评论 -
C++中const、volatile、mutable的用法
const、volatile、mutable的用法const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const转载 2015-04-15 23:21:43 · 375 阅读 · 0 评论 -
C++类静态成员的初始化
记住:通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化!!!#includeiostream>usingnamespacestd;classtest{public:staticint num;};inttest::num =转载 2015-04-03 09:40:42 · 509 阅读 · 0 评论 -
慎用局部静态变量
慎用局部静态变量先看看例子吧:////////////////////////////////////////////////////////////// SomeClass.hclass SomeClass {public: static string &func1(void) { static string s1;转载 2015-04-03 13:08:27 · 954 阅读 · 0 评论 -
C++对象特殊初始化及赋值
在阅读一些C++源码的时候,我们会发现给对象初始化或赋值时用有类似“ClassA a = {1,2}”或“a = {1,2}(a是对象)”的语句。这种初始化以及赋值的表达形式让人产生疑惑:首先,它是如何给对象赋值的;其次,这种表达是不是需要ClassA有特殊的实现。这些都令人疑惑。 网络上有人把这种赋值形式解释为ClassA类重载了赋值操作符。但是真实情况并非如此。原创 2015-03-03 15:19:46 · 1256 阅读 · 0 评论 -
linux下使用boost库编写TCP客户端/服务器程序官方简易教程
来自boost官方文档的客户端/服务器程序代码:其中包括:1.同步方式的TCP-daytime 客户端;2.同步方式的TCP-daytime服务器;3.异步方式的TCP-daytime服务器原创 2015-03-02 10:33:13 · 3025 阅读 · 0 评论 -
C++自定义隐式转换函数
转载自:http://www.cnblogs.com/younes/archive/2010/03/08/1681115.html C++中单参数构造函数若不声明为explict,在合适的场合可以产生隐式转换:由成员变量类型转换为类类型。 下面的代码展示如何实现反向的转换: void changeFontSize(FontHandle f, int newsize);class Font{p转载 2015-03-02 19:50:50 · 1468 阅读 · 0 评论 -
linux下使用boost库编写UDP客户端/服务器程序官方简易教程
这篇博文的内容主要是对boost官方的UDP客户端/服务器端代码进行了注释,其中包括三部分:1.同步方式的UDP-daytime客户端;2.同步方式的UDP-daytime服务器;3.异步方式的UDP-daytime服务器原创 2015-03-02 17:01:16 · 2681 阅读 · 0 评论 -
C++模版 显式实例化、显式具体化、隐式实例化
转自:HelloWord的博客链接:http://blog.sina.com.cn/s/blog_62b1508e0100hl8a.html 函数模板是C++新增的一种性质,它允许只定义一次函数的实现,即可使用不同类型的参数来调用该函数。这样做可以减小代码的书写的复杂度,同时也便于修改(注:使用模板函数并不会减少最终可执行程序的大小,因为在调用模板函数时,编译器都根据转载 2015-01-22 20:53:33 · 14457 阅读 · 10 评论 -
boost::format类用法
boost::format类提供了类似C语言里'printf'功能的格式化输出能力,当然功能更强大。所需头文件:#include 示例代码:#include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ // 使用%序号%的方式给出转载 2014-10-15 16:37:37 · 1772 阅读 · 0 评论 -
ubuntu下qt编译显示Cannot connect creator comm socket /tmp/qt_temp.xxx/stub-socket的解决办法
关于今天在ubuntu下安装了qtcreator,准备测试一下是否能用,果然一测试就出问题了,简单编写后F5编译在gnome-terminal中出现 于是查了一下,知道qt不能用gnome-terminal执行,需要使用x-team,于是想到了解决方法:找到:工具(Tools)->环境(environment)->系统(System)->终端(Terminal转载 2014-10-25 10:38:50 · 806 阅读 · 0 评论 -
Linux--进程组、会话、守护进程
进程组 一个或多个进程的集合 进程组ID: 正整数 两个函数 getpgid(0)=getpgrp()eg:显示子进程与父进程的进程组id 1 #include 2 #include 3 #include 4 5 int main() { 6 pid_t pid; 7 8 if ((pid=fo转载 2014-10-23 14:13:47 · 542 阅读 · 0 评论 -
C++ 类成员变量为引用时如何编写
C++的成员变量可以为引用吗?答案:是的!代码如下:#include using namespace std;class A{public: A(int s):_k(s){cout << "A constructor" << endl;} ~A(){cout << "A destructor" << endl;} void print(){cout <<原创 2015-11-25 20:57:23 · 734 阅读 · 0 评论