c++
文章平均质量分 87
CatEatApple
这个作者很懒,什么都没留下…
展开
-
QString 与中文问题
首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码。而问题一般都出在很多用户对自己当前的编码没太多概念,于是一个简转载 2014-11-12 17:13:55 · 461 阅读 · 0 评论 -
C++中了类继承和调用父类的构造函数方法
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。 如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。构造原则如下:转载 2016-06-21 12:20:20 · 2102 阅读 · 0 评论 -
const与#define的区别
const const 是c++中的修饰符。 c++中常用来定义常量,修饰左值。#define 宏定义语句, 在预处理阶段直接做文本替换,不做类型检查。它们之间的最大区别:1. 对于const 变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数。因为const变量是存放在内存的静态区域中,所以在程序运行过程转载 2016-03-23 12:14:42 · 573 阅读 · 0 评论 -
c++中的虚函数
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过转载 2016-03-23 11:35:43 · 319 阅读 · 0 评论 -
c++的重载、覆盖和遮蔽(隐藏)
C++的重载、覆盖和遮蔽(隐藏)为了说明这三者的区别,引入函数签名的概念函数签名主要包括1、函数名;2、参数的个数、数据类型和顺序但是注意,函数签名不包括返回值1、重载在同一个类中,或者在顶层函数(与main函数同层)中,如果(1)函数名相同(2)函数签名不同则就是函数重载。函数重载对函数返回值无要求,即返回值可以相同也可以不相同。例如:函数int转载 2016-03-23 10:18:34 · 457 阅读 · 0 评论 -
const_cast (expression)
const_cast (expression)const_cast转换符是用来移除变量的const或volatile限定符。对于后者,我不是太清楚,因为它涉及到了多线程的设计,而我在这方面没有什么了解。所以我只来说const方面的内容。 用const_cast来去除const限定 对于const变量,我们不能修改它的值,这是这个限定符最直接的表现。但是我们就是想转载 2014-11-04 17:56:58 · 485 阅读 · 0 评论 -
Effective C++ Item 6 若不想使用编译器自动生成的函数,就该明确拒绝
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie经验:为驳回编译器自动提供的机能,可将相应的成员函数声明为private并且不予实现。使用像Uncopyable这样的base class也是一种方法[cpp] view plaincopyclassUncop转载 2014-10-28 15:37:44 · 371 阅读 · 0 评论 -
必须在构造函数基/成员初始值设定项列表中初始化
C++ primer 上面的一个例子: // constRef.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"class constRef{public: constRef(int ii); int i; const int ci; int &ri;};constRef::constRef(int ii){ i=ii;转载 2014-10-28 15:24:32 · 3644 阅读 · 0 评论 -
Effective C++ Item 10 令operator= 返回一个reference to *this
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie经验:令赋值(assignment)操作符返回一个reference to *this --》 这样可以实现级联赋值示例:[cpp] view plaincopy#include #include转载 2014-10-28 16:42:43 · 461 阅读 · 0 评论 -
Effective C++ Item 8 别让异常逃离析构函数
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie经验1:析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们(不传播)或结束程序。示例:[cpp] view plaincopyclass DBCo转载 2014-10-28 16:15:16 · 619 阅读 · 0 评论 -
Effective C++ Item 7 为多态基类声明virtual析构函数
经验1:带多态性质的基类应该声明一个virtual 析构函数。如果class带有任何virtual函数,它就应该拥有一个virtual 析构函数示例:不为带多态性质的基类声明一个virtual析构函数[cpp] view plaincopy#include #include using namespace std;转载 2014-10-28 15:43:20 · 404 阅读 · 0 评论 -
Effective C++ Item 9 绝不在构造和析构过程中调用virtual函数
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie经验:在构造和析构期间不要调用virtual函数,因为这类调用从不下降至derived class(比起当前执行构造函数和析构函数的那层)示例:[cpp] view plaincopy"code" class=转载 2014-10-28 16:31:38 · 373 阅读 · 0 评论 -
Effective C++ Item 5 了解 C++ 默默编写并调用哪些函数
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie经验1:如果你自己没声明,编译器会自动声明copy constructor,copy assignment,destructor,如果你没有声明任何构造函数,编译器会自动声明default constructor示例:如果你写下转载 2014-10-28 15:35:40 · 425 阅读 · 0 评论 -
Effective C++ Item 4 确定对象被使用前已先被初始化
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie经验1:为内置对象进行手工初始化,因为C++不保证初始化它们示例:[cpp] view plaincopyint x = 0;//对int进行手工初始化 const char *text = "A C-s转载 2014-10-28 15:31:37 · 379 阅读 · 0 评论 -
Qstring,char,int,QByteArray之间到转换
第一种,数据流的方式,这里只说从QByteArray转向QString。QByteArray encodedString = "xxx";QTextCodec *codec = QTextCodec::codecForName("KOI8-R");QString string = codec->toUnicode(encodedString);第二种,常用的,网上看到的。//常转载 2014-10-29 14:20:12 · 392 阅读 · 0 评论 -
基于C++全局变量的声明与定义的详解
(1)编译单元(模块)在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作:第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件;第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件。那么,错误可能在两个地方产生:一个,编译时的错误,这个主要是语法错误;一个,链接时的错误,主要是重复定义变量等。编译单元指在编译阶段生成的转载 2016-07-28 09:47:27 · 307 阅读 · 0 评论