
C++学习笔记
文章平均质量分 68
没有梦想__何必远方
学习党
展开
-
浮点数的优缺点
与整数相比,浮点数有两大优点。首先,它们可以表示整数之间的值,原创 2014-10-28 21:11:48 · 8155 阅读 · 0 评论 -
简单文件输入/输出
1.文本I/O和文本文件 这里来介绍一些文本I/O的概念。使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标数据类型是什么,输入一开始都是字符数据——文本数据。然后,cin对象负责将文本转换为其他类型。为说明这是如何完成的,来看一些处理同一个输入行的代码。 假设有如下范例输入行: 38.5 19.2 来看一下使用不同数据类型的变量进原创 2014-12-29 13:34:01 · 1484 阅读 · 0 评论 -
典型的整形溢出行为
C++中常用的数据类型有整形,字符型,浮点xing原创 2014-10-28 14:42:40 · 2862 阅读 · 0 评论 -
关于C++中的虚拟继承的一些总结
原文转自关于C++中虚拟继承的一些总结1.为什么要引入虚拟继承虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public v转载 2015-05-28 15:43:23 · 609 阅读 · 0 评论 -
如何使用指向类的成员函数的指针(详解!)
本文转自lishuhuakai的博客 我们首先复习一下”指向函数的指针”如何使用? void print() { } void (*pfun)(); //声明一个指向函数的指针,函数的参数是 void,函数的返回值是 void pfun = print; //赋值一个指向函数的指针 (*pfun)(); //使用一个指向函数的指针比较简单,不是吗? 为什么 *pfu转载 2015-05-07 20:36:45 · 1150 阅读 · 0 评论 -
C++中 虚函数中的默认参数问题
原文转自nwplei的博客 当通过指针调用一个对象的方法时,如果该方法是虚函数,则实际调用的是该实例的方法。当缺省参数和虚函数一起出现的时候到底用哪个默认值呢?虚函数是动态绑定的,但是为了执行效率,缺省参数是静态绑定的。 也就是 指针是哪种类型,就调用该类型对应的类中,该函数定义时的缺省值。#include <iostream>using namespace std;class A{pu转载 2015-05-03 17:03:07 · 712 阅读 · 0 评论 -
使用cout来进行格式化输出
1.修改显示时使用的计数系统ostream类是从ios类派生来的,而后者是从ios_base派生来的。ios_base类存储了描述格式状态的信息。例如,一个类成员中某些位决定了使用的计数系统,而另一个成员则决定了字段宽度。通过使用控制符,可以控制显示整数时使用的计数系统。通过使用ios_base的成员函数,可以控制字段的宽度和小数位数。 要控制整数以十进制、十六进制、八进制显示,可以使用dec、h原创 2015-04-09 20:18:00 · 608 阅读 · 0 评论 -
为什么C++编译器不支持模板头文件和实现代码分离的编译
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/thinkscape/archive/2008/12/20/3567420.aspx首先,C++标准中提到,一个编译单元[translation unit]是指一个.cpp文件以及它所include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件,后者拥有转载 2015-04-15 17:41:40 · 669 阅读 · 0 评论 -
const char * 和 char const * 和 char * const 区别
我们都用过const 修饰符修饰一个变量,而且我们知道使用const修饰之后,这个变量相当于常量了,他的值在代码其他部分不能再修改,这对于函数调用时候,防止错误的修改原本不应修改的变量起到很大作用,举个例子,加入A函数调用B函数进行字符串处理,A把字符串的地址传递给B,B在处理过程中误修改了字符串的地址,导致程序出错,有时候这种错误很难找到,这时候我们就可以使用const关键字。可是对于指针的情况,转载 2015-04-13 19:20:13 · 5892 阅读 · 0 评论 -
类型转换操作符
C++有更严格的限制允许的类型转换,并添加4个类型转换操作符,使转换过程更规范:dynamic_cast;const_cast;static_cast;reinterpret_cast。可以根据目的选择一个适合的操作符,而不是使用通用的类型转换。这指出了进行类型转换的原因,并让编译器能够检查程序的行为是否为设计者想法吻合。dynamic_cast:该操作符的用途是,使得能够在类层次结构中进原创 2015-04-11 15:10:14 · 580 阅读 · 0 评论 -
输入输出流状态
1.流状态cin或cout对象包含一个描述流状态(stream state)的数据成员(从ios_base那里继承的)。流状态(被定义为iostate类型,而iostate是一种bitmask类型)由3个ios_bae元素组成:eofbit、badbit或failbit,其中每个元素都是一位,可以是1(设置)或0(清除)。当cin操作到达文件末尾时,它将设置eofbit;当cin操作未能读取到预期的原创 2015-04-10 11:45:49 · 1749 阅读 · 0 评论 -
C++笔试题
1.下面代码的输出是什么?class A { public: A() { } ~A() { cout<<"~A"<<endl; } }; class B:public A { public: B(A &a):_a(a) { } ~B()原创 2015-04-02 13:53:16 · 572 阅读 · 0 评论 -
c++类和动态内存分配复习题
1.假设String类有如下私有成员:class String{private: char *str; int len; //...};请说出下面的构造函数有什么问题。 a.String::String(){ }b.String::String(const char * s){ str = s; len = strlen(s);}c.String原创 2015-03-22 10:27:21 · 1151 阅读 · 0 评论 -
C++类和动态内存分配
注:本文章仅供个人复习使用。 在这里定义了一个String类,并重载了各种操作符。 String.h:#include <iostream>#ifndef STRNGBAD_H_#define STRNGBAD_H_class String{private: char * str; int len; static int num_strings; //静态类成员,原创 2015-03-21 12:38:10 · 775 阅读 · 0 评论 -
类继承复习题
1.派生类从基类那里继承了什么? 答:基类的公有成员成为派生类的公有成员。基类的保护成员成为派生类的保护成员。基类的私有成员被继承,但不能直接被访问,可以通过基类的公有成员函数来访问。2.派生类不能从基类那里继承什么? 答:不能继承构造函数、析构函数、赋值操作和友元。3.假设baseDMA::operator=( )函数的返回类型为void,而不是baseDMA &,这将有什么后果?如果返回原创 2015-03-27 14:59:51 · 1062 阅读 · 0 评论 -
c++学习之类继承
注:本文章仅供个人复习使用。 本章内容包括:is-a关系的继承如何以公有的方式从一个类派生出另一个类保护访问构造函数成员和初始化列表向上和向下强制转换虚拟成员函数静态联编与动态联编抽象基类纯虚函数何时以及如何使用公有继承首先看看如何以公有的方式从一个类派生出另一个类 下面定义了TableTennisPlayer类,并派生出了一个RatedPlayer类#ifndef TA原创 2015-03-26 19:05:13 · 685 阅读 · 0 评论 -
指针和const
将 const 用于指针有一些很微秒的地方,我们来探讨一下。可以用两种不同的方式将 const 关键字用于指针。第一种方法是让指针指向一个常量对象,这样可以防止该指针来修改所指向的值。第二种方法是将指针本事声明为常量,这样可以防止改变指针指向的位置。下面来看细节。首先,我们声明定义一个指向常量的指针 pt: int age = 39; const int *pt = &age;原创 2014-11-27 16:12:02 · 481 阅读 · 0 评论 -
C++笔试题1
1.在32位机器中,如下代码的输出是:void example(char acWelcome[]){ printf("%d",sizeof(acWelcome)); return;}void main(){ char acWelcome[]="Welcome to Huawei Test"; example(acWelcome); return;}A.0原创 2015-04-07 19:47:23 · 790 阅读 · 0 评论