
C++基础知识
文章平均质量分 65
sophia_sy
这个作者很懒,什么都没留下…
展开
-
多态性
多态性是指用一个名字定义不同的函数,这函数执行不同但又类似的操作,从而实现“一个接口,多种方法”。以下是不采用虚函数实现的多态性。#include using namespace std; class B{public: void (*f)();//指向函数的函数指针f,指向的函数必须是没有参数,返回值为void B() { cout } }; class D原创 2007-01-13 16:46:00 · 691 阅读 · 0 评论 -
c++Prime 读书笔记8 (bitset)
c++Prime中有这么一段:我们还可以标记用来初始化bitset 的字符串的范围例如在下面的语句中// 从位置6 开始, 长度为4: 1010string bitval( "1111110101100011010101" );bitset bitvec5( bitval, 6, 4 );bitvec5 的第1 和第3 位被初始化为1 其他位为0 同bitvec3 和bitvec4 一样如果原创 2007-04-02 12:26:00 · 1019 阅读 · 0 评论 -
bitset
bitset bitvec3(012) C++ Prime中的解释为:将第1 和3 位的值设置为1 假设位置从0 开始计数00000000000000000000000000001010我们还可以传递一个代表0 和1 的集合的字符串参数来构造bitset 对象如下所示// 与bitvec3 的初始化等价string bitval( "1010" );bitset bitvec原创 2007-04-02 11:38:00 · 843 阅读 · 0 评论 -
CString.Format(_T())
在vs.Net 2003 (Version 7.1.3088 English)的代码入下: CString m_strShow; m_strShow.Format("%d",100); 在使用Use Multi-Byte Character Set编译事一切正常;但是使用Use Unicode Character Set选项编译时原创 2007-01-25 14:37:00 · 3749 阅读 · 1 评论 -
explicit关键字的使用
explicit关键字的使用单参数构造函数的一个隐含意思是:将该参数转换成该类的一个对象。这实际上是一个隐式的类型转换。要注意,参数定义缺省值的构造函数只要在调用时能形成单参数形式,同样具有隐式类型转换功能。 关键字explicit用来禁止编译器隐式调用该构造函数,以防止隐式的类型转换,但对显式调用该函数则没有问题#include "stdafx.h" class原创 2007-03-11 15:10:00 · 1647 阅读 · 1 评论 -
const关键字到底修饰谁?
2006-08-07 15:32 char *p = "hello"; // 非const指针, // 非const数据const char *p = "hello";原创 2007-03-11 13:56:00 · 825 阅读 · 0 评论 -
关于CString总结
关于CString总结 前言:串操作是编程中最常用也最基本的操作之一. 做为VC程序员,无论是菜鸟或高手都曾用过CString.而且好像实际编程中很难离得开它(虽然它不是标准C++中的库).因为MFC中提供的这个类对我们操作字串实在太方便了,CString不仅提供各种丰富的操作函数、操作符重载,使我们使用起串起来更象basic中那样直观;而且它还提供了动态内存分配,使我们减少了多少字符串数组转载 2007-03-06 17:11:00 · 1094 阅读 · 0 评论 -
c++ Prime读书笔记1
设计类考虑的问题:1) 保护成员(包括数据成员和成员函数)只提供给派生类使用;私有成员提供给友员类和类自己使用;2) 对于类型相关的成员函数,它的算法由特定的基类或者派生类的行为或实现来决定,需要声明为virtual。3) 如果派生类没有引入额外的数据成员,我们可以合理的假设继承基类的构造函数就已经足够了,我们不需要再提供派生类的构造函数,因为原创 2007-03-09 15:08:00 · 1061 阅读 · 0 评论 -
c++ Prime读书笔记6(c++:const 操作小结)
c++:const 操作小结一 const直接修饰一个非指针变量并进行初始化,则该变量不能被修改 const int a =100 ; 结果: 1 变量a不能直接被修改。类似 a=101;这样的语句不能通过编译 2 取地址操作也需要加const 修饰符, const int *b=&a ; 否则转载 2007-03-09 17:04:00 · 1160 阅读 · 0 评论 -
异常最简单使用方式
#include #include using namespace std;void sum_it(int* sa, int size){ string err("sum expetion"); throw err;}void max_it(int*sa, int size){ cout}int _tmain(int argc, _TCHAR* argv[]){ int* sa =原创 2007-03-06 17:16:00 · 618 阅读 · 0 评论 -
Visual C++ 编译器选项
Visual C++ 编译器选项 选项 目的 @转载 2007-01-15 14:28:00 · 827 阅读 · 0 评论 -
static_cast、dynamic_cast、reinterpret_cast、和const_cast
static_cast、dynamic_cast、reinterpret_cast、和const_cast 关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父转载 2007-01-15 14:26:00 · 893 阅读 · 0 评论 -
vc2005 : declared deprecated warning
转载:http://spraut.spaces.live.com/vc2005 : declared deprecated warning 将以前的代码在vc2005下编译,经常会遇到类似如下的警告: warning C4996: strcat was declared deprecated. 通常这类警告都是由于调用了字符串相关函数引起的。虽然这警告无伤大雅,仅仅只是说使用的函转载 2007-01-15 14:23:00 · 1203 阅读 · 0 评论 -
auto_ptr再回忆
转载来源:http://www.xgdown.com [声明]:本英文资料源自于Herb Sutter 创建的“Conversation”栏目,“C++ 翻译小组”的翻译作品供学习交流与参考用途,不得用于任何商业用途。未经Herb Sutter、Jim Hyslop同意,不得转载;对于违反以上条款,翻译小组对此不负任何责任;特此声明。 在此引用只是想更好的学习auto_ptr文章来源:转载 2007-01-14 14:29:00 · 728 阅读 · 0 评论 -
覆盖与隐藏
如何类成员函数被隐藏则访问的时候取决于指针或者引用类型。如果成员函数是被覆盖则引用的时候取决于对象的类型。这正是虚函数实现多态的机制。具体例子如下所示。在编写类的过程中一定要正常对待隐藏和覆盖。 //suc.h //suc.cpp#include #include "suc.h" void main(){ A *pa = new B; char* str原创 2007-01-13 16:44:00 · 612 阅读 · 0 评论 -
位与 逻辑与 位或 逻辑或
先看一个很简单的程序,看看你是否能正确地回答,c d e f 分别是什么值。呵呵。答对了,就说明您对位与 逻辑与 位或 逻辑或的概念清楚了,下面的也就用不着浪费您的时间看它了。int main(int argc, char* argv[]){ unsigned int a = 3; unsigned int b = 7; unsigned int c = a | b; unsigned in原创 2007-04-02 11:00:00 · 1568 阅读 · 0 评论