C++
imxiangzi
这个作者很懒,什么都没留下…
展开
-
[祥:]C++定义对象的时候调用默认的构造函数,各种形式
有一个类class A{public: A(){ cout } int x;};定义对象A may;//调用默认的构造函数A *p = new A;//调用默认的构造函数A *p2 = new A();//调用默认的构造函数A myb();//error, 这个不是定义对象,而转载 2017-07-11 21:22:45 · 477 阅读 · 0 评论 -
arm平台tslib的编译与qte源代码包配置中的-qt-mouse-tslib
自己一个人学习摸索,真不是件容易的事,为了能够在qt-embedded-linux-opensource-src-4.5.3里配置-qt-mouse-tslib不出问题,我可是足足折腾了三天,以下我将自己的工作成果贴出,与大家共享:一、下载tslib-1.4.tar,编译 1. 当然以下内容是参考网络其它文章的,安装前有三个相关软件:autoconf,automake,li转载 2015-08-19 19:43:14 · 698 阅读 · 0 评论 -
在C++中子类继承和调用父类的构造函数方法
构造方法用来初始化类的对象,与其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。构造原则如下: 1. 如果子类没有定义转载 2015-08-18 19:55:37 · 803 阅读 · 0 评论 -
C++中虚函数和非虚函数重载在继承时的区别
这里唯一想说明的一点就是,使用虚函数继承时,当继承类被强转成基类后调用虚函数,调用的还是继承类的虚函数。而重载方式的继承类被强转成基类再调用重载函数,则调用的是基类的函数。废话不多说,上代码:[cpp] view plaincopy#include using namespace std; class A { public转载 2015-08-18 19:54:19 · 853 阅读 · 0 评论 -
C++ 子类继承父类 之 构造函数
C++ 子类继承父类 之 构造函数前面常写点java的代码,对于C++基本的一些概念很模糊了,就当写个小笔记之后遇到问题肯定还要补充。主要内容:a. 子类继承父类写法b. 子类继承父类的构造函数 创建父类F.h[cpp] view plaincopy#include转载 2015-08-18 16:11:33 · 519 阅读 · 0 评论 -
C++三大继承构造函数的执行顺序详解
最近在网上看到一篇关于三大继承构造函数的执行顺序详细讲解,忍不住就收归己用啦..我个人觉得很有参考价值!! 转自: http://blog.csdn.net/daheiantian/archive/2011/02/18/6438782.aspx 一、单继承核心:在构造子类之前一定要执行父类的一个构造函数。1.构造函数(不包括复制构造函数)。转载 2015-08-18 16:08:48 · 488 阅读 · 0 评论 -
鸡啄米:C++编程入门系列之三十九(继承与派生:派生类的构造函数)
派生类通过公有继承、保护继承和私有继承控制对基类成员的访问属性在鸡啄米编程入门的前两节讲完了。今天讲讲派生类的构造函数。 鸡啄米前面说过,基类的构造函数和析构函数派生类是不能继承的。如果派生类需要对新成员初始化或者进行特定的清理工作,就需要自己定义构造函数和析构函数了。从基类继承的成员的初始化仍可通过基类的构造函数来完成。 我们使用派生类的对象以前需要对它的转载 2015-08-18 21:00:20 · 669 阅读 · 1 评论 -
派生类的构造函数的初始化列表问题
一、派生类不能在成员初始化列表中直接初始化基类的成员初始化基类成员构造函数是不可继承的。因此,派生类的构造函数必须通过调用基类的构造函数初始化基类成员,不能够在派生类初始化列表直接初始化基类的成员,“越级初始化”。派生类的构造函数的一般格式为:派生类名(形参表):基类名1(形参表1),基类名2(形参表2)···{···}注意事项:(1)在创建派生转载 2015-08-18 00:45:03 · 8581 阅读 · 0 评论 -
C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2015-08-17 22:50:21 · 323 阅读 · 0 评论 -
C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即类名>::静态成员名>。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来转载 2015-08-08 15:00:49 · 405 阅读 · 0 评论 -
C++运算符重载(二)——使用方法
原文:http://blog.csdn.net/linlinlinxi007/article/details/5283048 一、运算符重载的两种形式 运算符重载一般采用如下两种形式:成员函数形式和友元函数形式。这两种形式都可访问类中的私有成员。 1. 重载为类的成员函数 这里先举一个关于给复数运算重载复数的四则运算符的例子。复数由实部和虚部构造,转载 2015-08-08 17:25:19 · 414 阅读 · 0 评论 -
一个顽疾——QT不能包含tslib的头和库文件联合编译的解决方法
先介绍一下我的交叉编译环境,OS是Fedora9,交叉编译器是arm-linux-gcc-4.3.3(arm-2009q1),其它,tslib-1.4、QT4.7.2,硬件平台Omap3530。 以前我的交叉编译器使用的是arm-linux-gcc-4.3.2,联合编译QT4.7.2和tslib-1.4没有任何问题。现在,我换成了arm-linux-gcc-4.3.3,再次联合编转载 2015-08-21 07:54:35 · 996 阅读 · 0 评论 -
C++变量的可见性
我们之前介绍过,在某一个函数中,不应该有两个名字相同的变量。可是,我们拿下面这段程序代码(程序11.1.3)去测试一下,发现居然在同一个函数中可以有两个名字相同的变量。这又是怎么回事呢?编译器又是如何辨别这两个名字相同的变量的呢?#include "iostream.h"int main(){ int a=3,b=4; { int a=5,b=6;转载 2016-03-08 00:12:15 · 1448 阅读 · 0 评论 -
C++作用域
作用域通常和变量捆绑在一起,限定了变量可用范围,同时也规定了变量的生命周期:何时创建、何时销毁。作用域通常分为:全局作用域和局部作用域。全局作用域(全局变量)在所用函数体外部定义的变量就是全局变量,具有全局作用域。它在main函数执行前创建,mian函数结束后销毁。下面的代码演示了全局变量的创建和销毁: 1: class World 2: { 3:转载 2016-03-08 00:11:01 · 409 阅读 · 0 评论 -
成员指针运算符 .* 和 ->*
有一种特殊的指针叫做成员指针,它们通常指向一个类的成员,而不是对象中成员的特定实例。成员指针并不是真正的指针,它只是成员在对象中的偏移量,它们分别是:.* 和 ->* 。下面例子说明了成员指针 .* 的用法:01020304050607080910111213转载 2015-12-10 12:28:24 · 5605 阅读 · 0 评论 -
C++ 类成员访问运算符 -> 重载
类成员访问运算符( -> )可以被重载,但它较为麻烦。它被定义用于为一个类赋予"指针"行为。运算符 -> 必须是一个成员函数。如果使用了 -> 运算符,返回类型必须是指针或者是类的对象。运算符 -> 通常与指针引用运算符 * 结合使用,用于实现"智能指针"的功能。这些指针是行为与正常指针相似的对象,唯一不同的是,当您通过指针访问对象时,它们会执行其他的任务。比如,当指针销毁时,或者当指针指转载 2015-12-10 12:29:23 · 2339 阅读 · 0 评论 -
深入浅出UML类图(四)
实例分析1——登录模块 某基于C/S的即时聊天系统登录模块功能描述如下: 用户通过登录界面(LoginForm)输入账号和密码,系统将输入的账号和密码与存储在数据库(User)表中的用户信息进行比较,验证用户输入是否正确,如果输入正确则进入主界面(MainForm),否则提示“输入错误”。 根据以上描述绘制初始类图。转载 2015-11-22 17:55:16 · 669 阅读 · 0 评论 -
tslib1.4的交叉编译
tslib是touch screen lib,即支持触摸屏的库文件。要交叉编译qte4.5.2,就必须先要编译tslib1.4.今天做了这个工作,记录一下。 平台:VMware + Centos5.4 交叉编译器:arm-linux-3.4.1 参考资料:http://blog.chinaunix.net/u1/34474/showart.php?id=1转载 2015-08-22 12:28:22 · 2206 阅读 · 0 评论 -
Tslib和Qt 4.8.4与在开发板上的移植
这篇博客算是接着Linux 下编译、安装、配置 QT这篇的,搞完PC平台的就来弄一下嵌入式平台的,Linux的东西搞起来麻烦的地方就在于太杂、太散,像QT,各版本之间都有很多差异,因此在网络上查找资料不能光看某一个,必须很多资料综合来判断、取舍。好了,下面进入正题,本篇主要记录QT的交叉编译过程,这过程中很多东西我都试着去理解,去找出为什么这样做,然而毕竟时间有限,很多地方还不太清楚,只能先做转载 2015-08-21 07:57:31 · 1153 阅读 · 0 评论 -
c++的赋值构造函数以及vector::push_back的问题
点击(此处)折叠或打开/* g++和用vs2005得到的结果是不同的,因为vector分配内存的策略不同。 奇怪的是vs2005中的vector::push_back居然需要两次复制构造函数,而g++只需要一次, 这一点可以从代码中一个结果是11一个是12看到*/#include iostream>#in转载 2015-08-22 10:16:54 · 1935 阅读 · 0 评论 -
全面整理的C++面试题
C++面试题1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加转载 2015-08-16 21:09:31 · 452 阅读 · 0 评论 -
Log4cpp:为中小型C++项目加上log支持
对于一个上点规模的C++项目而言,Log的作用是毋庸置疑的,出问题的时候,看了Log,常见的问题处理起来自是方便不过,即使遇到麻烦的问题,也可以从log总发现不少蛛丝马迹。因此一个严肃的项目应该从一开始就好好考虑如何打Log,便于分析、维护。现实的情况却是很多项目都是从最初的数千行代码逐步庞大起来;开始的时候可能为了图方便,加log的方式大多是自己在iostream的基础上自己封装一下;等转载 2015-08-16 00:15:24 · 1582 阅读 · 0 评论 -
2012各大公司的C++试题
那么多C++试题,其实最关键的是要知道考察的知识点在哪里。哎,应该好好重新看看《effective c++》了。网易3道C++试题:题目1:[cpp] view plaincopyclass A { public: A(int j):i(j) { fun1(转载 2015-08-16 21:05:06 · 487 阅读 · 0 评论 -
C++中const用法总结
C++中const用法总结作者JuKevin1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即val转载 2015-08-12 11:22:23 · 384 阅读 · 0 评论 -
C++中const修饰二级指针(从类型‘int**’到类型‘const int**’的转换无效)
先上代码:?12345678910voidfunc(constint ** arg){} intmain(intargc, char**argv){ int**p转载 2015-08-12 11:21:15 · 1721 阅读 · 0 评论 -
深入分析C++引用
关于引用和指针的区别的文章很多很多,但是总是找不到他们的根本区别,偶然在codeproject上看到这篇文章,觉得讲的挺好的,所以翻译了下,希望对大家有帮助。原文地址: http://www.codeproject.com/KB/cpp/References_in_c__.aspx 引言 我选择写 C++ 中的引用是因为我感觉大多数人误解了引用。而我之所以有这个感受是转载 2015-08-12 11:23:18 · 308 阅读 · 0 评论 -
C++引用详解
C++引用详解 引用的概念引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名; 如下:定义引用ra,它是变量a的引用,即别名。 int a; int &ra=a; (1)&在此不是求地址运算符,而是起标识作用。 (2)类型标识符是指目转载 2015-08-12 12:14:09 · 327 阅读 · 0 评论 -
关于int *a; int &a; int & *a; int * &a
上述的四条语句,前面两个很好理解,而后面两个,大部分C++初学者都会比较困惑,今天我也是查阅了一些资料以后才恍然大悟。下面具体来说明一下:int i;int *a = &i;//这里a是一个指针,它指向变量iint &b = i;//这里b是一个引用,它是变量i的引用,引用是什么?它的本质是什么?下面会具体讲述int * &c = a;//这里c是一个引用,它是指针转载 2015-08-12 11:19:15 · 396 阅读 · 0 评论 -
vector里插入类的对象
例子:#include#include #include using namespace std;ofstream out("1.txt");class Rock{ public: Rock(){out Rock(const Rock&){out ~Rock(){out };int main(){转载 2015-08-22 09:57:24 · 7048 阅读 · 0 评论 -
C++_友元函数
1、为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率 具体来说:为了使其他类的成员函数直接访问该类的私有变量 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数 优点:能够提高效率,表达简单、清晰 缺点:友元函数破环了封装机制,尽量不使用成员函数,除非不得已的情况下才使用友元函数。转载 2015-08-08 16:06:19 · 319 阅读 · 0 评论 -
C++_运算符重载
什么是运算符的重载? 运算符与类结合,产生新的含义。 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义)怎么实现运算符的重载?方式:类的成员函数 或 友元函数(类外的普通函数)规则:不能重载的运算符有 . 和 .* 和 ?: 和 :: 和 sizeof友元函数和成员函数的使用转载 2015-08-08 17:26:12 · 352 阅读 · 0 评论 -
C++的引用
C++的引用具备指针的所有功能,不过引用与指针的区别在于引用在定义时必须要初始化,因为引用对象不许为空,若对象可以为空,则定义指针变量,int i=9;int &s = i;定义引用指向了i;其实引用相当于我们所说的"别名",是所指向的变量的别名,引用与变量共用一个内存地址如:[cpp] view plaincopyint a ;转载 2015-08-12 12:13:05 · 378 阅读 · 0 评论 -
C++ ostream与printf比较
这两天与一位网友就C++流与printf函数的问题吵了两天,有点儿火药味儿(http://www.cppblog.com/converse/archive/2010/07/06/119427.html),其实我是对他一个大标题“C++的流设计很糟糕”,是比较生气的,这么多年还没有谁敢对C++的标准库如此出言不逊。我还使用百度跟GOOGLE验证了这一点,把“C++ 流 糟糕”三个关键词放在一起,转载 2015-08-12 15:19:21 · 2007 阅读 · 1 评论 -
cout与printf
printf与流,不妨也比较一下两个的优缺点。 1. 先说printf的优点,也就这一点了,那就是代码简洁,格式化方便,可以在格式化字符串里一次性将输出格式化。而ostream则需要一段一段地拆分,显得比较烦锁,特别是自定义输出类型的格式时,如格式化输出浮点的小数位数、十六进制输出等,用ostream更烦锁。 2.ostream类型安全,而printf则不能保证类型安全。 2.1)pr转载 2015-08-12 15:20:48 · 855 阅读 · 0 评论 -
const(一):(转) 一个函数名后面加const表示什么意思
http://zjw86212.blog.163.com/blog/static/116692085200910394324880/ const用在成员函数后 主要是针对类的const对象 如: class Text{ public: void printconst(void)const{cout voi转载 2015-08-13 21:42:11 · 4832 阅读 · 2 评论 -
从一道题谈C++中构造函数调用构造函数
题目如下:问下列代码的打印结果为0吗?#include stdlib.h>#include iostream>using namespace std;struct CLS{ int m_i; CLS( int i ) : m_i(i){} CLS() { CLS(0); }};int mai转载 2015-08-13 12:29:06 · 312 阅读 · 0 评论 -
C++中构造函数或析构函数定义为private
转自:http://www.blogjava.net/fhtdy2004/archive/2009/05/30/278971.html 很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?这意味着什么?(1)构造函数定转载 2015-08-13 12:28:30 · 459 阅读 · 0 评论 -
VC++----using namespace std问题
写一个简单的代码[cpp] view plaincopyprint?"font-size:18px;">#include //using namespace std; struct Point { int x; int y; }; void main() {转载 2015-08-13 09:48:00 · 850 阅读 · 0 评论 -
C++中vector的用法实例解析
本文实例展示了C++中的vector用法,分享给大家供大家参考。具体如下:一、概述vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小。例如:?12转载 2015-08-13 15:06:13 · 1034 阅读 · 0 评论 -
iostream.h和iostream 区别
转自:http://hi.baidu.com/laddie10/blog/item/079b1d4c32d7d8fcd62afc25.htmlC++中新定义的方法都是有名字空间的 比如cout就属于std名字空间 如果include头文件的时候加上.h,默认会using namespace 否则需要自己加上 using namespace XXX 对于C中已经定义的方法如printf,没有转载 2015-08-13 12:46:08 · 402 阅读 · 0 评论