c/c++
文章平均质量分 72
eric491179912
这个作者很懒,什么都没留下…
展开
-
关于public private protecetd
访问控制:public修饰的成员变量 在程序的任何地方都可以被访问,就是公共变量的意思,不需要通过成员函数就可以由类的实例直接访问private修饰的成员变量 只有类内可直接访问,私有的,类的实例要通过成员函数才可以访问,这个可以起到信息隐藏protected转载 2011-08-17 20:44:44 · 958 阅读 · 0 评论 -
关于拷贝构造函数
也许很多C++的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生。对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什么用,其实复制构造函数能解决一些我们常常会忽略的问题。 为了说明转载 2011-02-28 10:50:00 · 926 阅读 · 0 评论 -
关于C++基类、派生类的引用和指针
class A{ ......}class B : public A{ .....}(1)A *pA = new B(2)B b; A &rb=b;第(1)个是说一个基类的指针指向派生类的实例?这样做有什么意义?第(2)个是什么意思转载 2011-03-03 21:45:00 · 10172 阅读 · 1 评论 -
程序员面试宝典笔记5--字符串
#include "stdafx.h"#include #include using namespace std;void reverse(char* start, char* end){ if (start == NULL || end == NULL) {转载 2011-08-21 21:44:19 · 1316 阅读 · 0 评论 -
5分钟搞定内存字节对齐
写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧./******************************分割线如果体系结构是不对齐的,A中的成员将会一个挨一个存储,转载 2011-02-11 22:02:00 · 1716 阅读 · 0 评论 -
《c语言深度剖析》笔记3
1.先看下面的例子:int *p;现在用sizeof 测试一下(32 位系统):sizeof(p)的值为4。嗯,这说明咔出p的这个模子大小为4个byte。显然,这个模子不是“int”,虽然它大小也为4。既然不是“int”那就一定是“int *”了。好,那现在我们可转载 2011-08-11 10:50:08 · 1347 阅读 · 0 评论 -
如何判断一个数为无符号数还是有符号数
网上搜到的去年sybase在上海交大的一道笔试题,猛一下还真想不出来怎么整,总是以为正数的时候无法判断,后经实验室一牛师弟点拨,方才编出以下代码,主要利用了无符号数和有符号数相减结果为无符号数的性质。#includeint main(){ //uns转载 2011-03-15 10:01:00 · 10949 阅读 · 1 评论 -
c++对象模型
VC++,掀起你的盖头来——谈VC++对象模型(美)简 格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。Inside the C++转载 2011-04-06 22:45:00 · 563 阅读 · 0 评论 -
Solmyr 的小品文系列之一:字符串放在哪里?
char* p1 = "Hello";char* p2 = "Hello";字符串Hello称为字符串常量,Hello放在文字常量区,不能被修改,所以*p1,*p2实际上是const char*指向常量的指针,并且指向同一个地址采用这种定义方式的话,末尾会添加一个'\转载 2011-07-12 10:55:02 · 533 阅读 · 0 评论 -
c++ const成员函数
一些成员函数改变对象,一些成员函数不改变对象。例如: int Point::GetY(){ return yVal;} 这个函数被调用时,不改变Point对象,而下面的函数改变Point对象: void Point:: SetPt (int x,转载 2011-02-22 10:45:00 · 868 阅读 · 0 评论 -
extern "C"
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplu转载 2011-02-19 21:14:00 · 592 阅读 · 0 评论 -
C++虚函数表解析(转)
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R转载 2011-01-20 11:23:00 · 964 阅读 · 0 评论 -
extern "C"
概述 extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。 (1) 被extern "C"限定的函数或变量是extern类型的 extern是转载 2011-09-19 21:08:15 · 660 阅读 · 0 评论 -
《c语言深度剖析》笔记1
1.break 跳出当前循环 ,continue 结束当前循环,开始下一轮循环break 关键字很重要,表示终止本层循环。现在这个例子只有一层循环,当代码执行到break 时,循环便终止。如果把break 换成continue 会是什么样子呢?continue 表转载 2011-08-08 21:58:35 · 1978 阅读 · 2 评论 -
关于拷贝构造函数
拷贝构造函数是C++最基础的概念之一,大家自认为对拷贝构造函数了解么?请大家先回答一下三个问题: 1. 以下函数哪个是拷贝构造函数,为什么?X::X(const X&); X::X(X); X::X(X&, int a转载 2011-08-22 15:40:23 · 1006 阅读 · 0 评论 -
STL vector的erase操作问题
STL vector的erase操作问题一老大说CSDN上有篇博文( “关于STL vector的erase操作”,地址是:http://blog.csdn.net/tingya/archive/2007/12/28/1998442.aspx)黑奇怪,抱着猎奇的心态,偶也去凑转载 2011-08-23 10:17:42 · 1685 阅读 · 0 评论 -
程序员面试宝典笔记4--C++
1.返回值为比较大对象,如果按值传递返回的话,需要创建新对象,开销较大,因而返回引用; 2.但函数不希望所返回的对象被调用者修改,因此给返回的引用加上const修饰,以确保不被修改。隐藏转载 2011-08-17 10:01:56 · 876 阅读 · 0 评论 -
malloc(0)?
问题内容:malloc(0)返回什么地址?原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=4351400所属论坛:C语言 审核组:C/C++提问者:jidahyx 解决者:steedhorse感转载 2011-08-23 21:33:44 · 1665 阅读 · 0 评论 -
类在内存中的分配问题
一个类,有成员变量:静态与非静态之分;而成员函数有三种:静态的、非静态的、虚的。那么这些个东西在内存中到底是如何分配的呢?以一个例子来说明:class CObject{public:static int a;CObject();~CObje转载 2011-02-11 21:56:00 · 4912 阅读 · 0 评论 -
《c语言深度剖析》笔记2
1.y = x/*p,这是表示x 除以p 指向的内存里的值,把结果赋值为y?我们可以在编译器上测试一下,编译器提示出错。实际上,编译器把/*当作是一段注释的开始,把/*后面的内容都当作注释内容,直到出现*/为止。这个表达式其实只是表示把x 的值赋给y,/*后面的内转载 2011-08-10 11:01:50 · 1644 阅读 · 0 评论 -
C++题
struct CLS{ int m_i; CLS( int I ) : m_i(i) {} CLS() { CLS(0);//这里产生了新的对象.. }};CLS obj;cout 答:输转载 2011-08-26 16:44:32 · 723 阅读 · 0 评论 -
为什么拷贝构造函数必须为引用传递,不能是值传递?
拷贝构造函数的标准写法如下:class Base{public: Base(){} Base(const Base &b){..} //}上述写法见得最多,甚至你认为理所当然。那么如果我们不写成引用传递呢,而是值传递,那么会怎样?转载 2011-08-28 10:17:50 · 892 阅读 · 0 评论 -
二维数组和指针
二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一转载 2011-07-18 09:28:47 · 1160 阅读 · 0 评论 -
C++中变量的作用域与生命周期
今天在论坛上看到有朋友发帖问道:既然静态全局变量与全局变量都存储在全局数据区,为什么作用域却不一样呢?也许答案非常简单:C++就是这么规定的,静态全局变量与全局变量的唯一区别就是作用域不同。 对一个C++变量来说,有两个属性非常重要:作用域和生命周期,它们从两个不同的转载 2011-08-07 10:36:35 · 683 阅读 · 0 评论 -
去掉复制代码之前行号的小技巧
有些在CSDN等网站上复制的代码,前面会有一些行号,这是很烦人的,要是一个一个删除的话,是会疯掉的。可以将代码复制到能使用正则表达式的文本编辑器中,例如eclipse中,在选择替换(Find/Replace)选项卡中,选择正则表达式(Regularexpressions),用空字符串替换正则表达式[0-9]+即可。【注】“[0-9]”表示0-9的任一数字,“+”匹配前面的子表达式一次或多次转载 2011-12-12 10:34:24 · 4646 阅读 · 1 评论 -
《c++沉思录》笔记阅读中待续...
类设计者的核查表:1.数据成员尽力私有化封装,定义成员函数来操纵它们2.如果一个类定义了构造函数,而你想声明该类的对象不显示初始化他们,那么必须显示的写一个无参的构造函数3.尽力使构造函数初始化所有的数据成员4.类是否需要析构函数?如果分配了资源而又不会自动释放,如new等,那么需要在析构函数里面delete,delete[]5.类是否需要拷贝构造函数?如String类,如果没原创 2012-01-05 11:10:50 · 1198 阅读 · 0 评论 -
hw软件自测题一例
11:题目概述输入一个长度为N(字符串长度不定)的字符串,字符均为英文字符请完成如下功能:1)根据输入的字符串,产生n个字符子串字符子串生成规则:分隔符是空格,字符子串的排列顺序与原始字符串保持一致,且不包含分隔符2)根据要求输出某个序号的字符子串,序号1~n表示。示例:输入的原始字符串为“ Welcome to HuaWei software tr转载 2012-04-13 10:02:22 · 1166 阅读 · 0 评论 -
c指针的相关问题
1. int 与const 哪个放前哪个放后都是一样的,就好比const int ic;与int const ic;一样。也就是说,它们是相同的。2. const int *p 和 int const *p的区别:首先在const int *p 中,const修饰的是*p,是指*p是常量,即p所指之值不能通过指针来修改,但是p是可以指向其他地址的,比如:int a = 10;int转载 2012-04-16 16:38:37 · 850 阅读 · 0 评论 -
《more effective c++》Item M1:指针与引用的区别
指针和引用的区别(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用 指针. 由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. String & rs = string s1; 由于没有所谓的 null reference 所以所以在使用前不需要进行测试转载 2011-09-30 15:58:44 · 814 阅读 · 0 评论 -
《more effective c++》Item M3:不要对数组使用多态
类继承的最重要的特性是你可以通过基类指针或引用来操作派生类。这样的指针或引用具有行为的多态性,就好像它们同时具有多种形态。C++允许你通过基类指针和引用来操作派生类数组。不过这根本就不是一个特性,因为这样的代码几乎从不如你所愿地那样运行。假设你有一个类BST(比如是搜索树对象)和继承自BST类的派生类BalancedBST:class BST { ... }; class Balanc转载 2011-09-30 19:48:56 · 849 阅读 · 0 评论 -
关于一维数组和二维数组
一维数组:作为右值时,a 和&a[0] 相同,均表示数组首元素的地址。a+1是a[1]的地址&a表示数组的首地址,值和a, &a[0]相同,但代表的意义完全不一样,&a+1则指向下一个数组的头一位二维数组:如int a[2]原创 2011-08-31 11:05:33 · 806 阅读 · 0 评论 -
Solmyr 的小品文系列之五:垃圾收集
class my_intptr { private: int* m_p; int* m_count; public: my_intptr(int* p) { m_p = p;转载 2011-07-12 15:07:59 · 675 阅读 · 0 评论 -
C++ 内存池 -- C++ Memory Pool
这是我翻译的文章,来自 Code Project,原文作者: DanDanger2000. 原文链接: http://www.codeproject.com/cpp/MemoryPool.aspC++ 内存池l 下载示例工程 – 105Kbl转载 2011-09-25 17:03:23 · 1090 阅读 · 0 评论 -
《c语言深度剖析》笔记4
1.这条栓“野指针”的链子就是这个“NULL”。定义指针变量的同时最好初始化为NULL,用完指针之后也将指针变量的值设置为NULL。也就是说除了在使用时,别的时间都把指针“栓”到0 地址处。这样它就老实了。对于程序员,一般来说,我们可以简单的理解为内存分为三个转载 2011-08-11 21:31:03 · 839 阅读 · 0 评论 -
《C语言深度剖析》电子版4.1.5小节的错误
最近在朋友的推荐下读了《C语言深度剖析》(电子版),虽然这本书讲的知识点在《C程序设计语言》《C专家编程》《C的陷阱和缺陷》这三本书中都有,但是作者把这些知识点提炼到100多页的书中,而且讲得层层递进,逻辑性很好,确实让人钦佩!感谢作者免费在网上共享此书的电子版。转载 2011-08-13 10:04:59 · 827 阅读 · 0 评论 -
程序员面试宝典笔记7--OS
转载 2011-08-27 20:05:16 · 713 阅读 · 0 评论 -
继承与虚函数
继承的特性继承是面向对象中引入的重要特性之一,它的一个重要的特点就是子类是父类,父类不是子类。也就是说:1. 如果基类指针指向子类对象(pbase=&pchild),则该指针只能调用基类定义了的函数;2. 如果子类指针指向基类对象(pchild=(child *)pb转载 2011-07-11 11:20:30 · 1024 阅读 · 0 评论 -
Solmyr 的小品文系列之二:模棱两可的陷阱
void SomeFunc(int i) ………… void SomeFunc(float f) ………… int main(void) { ………… SomeFunc(1.2); // Error! ambig转载 2011-07-12 11:11:42 · 509 阅读 · 0 评论 -
c模拟内存管理
// 内存管理#include#includeconst int SIZE=100;const int MAX=65; //最大进程数const int DEBUG=0;//调试开关struct mem //内存块结构{int转载 2011-09-25 15:55:02 · 1459 阅读 · 0 评论 -
strcmp, strcpy, memcpy, strnicmp 实现
函数名: strnicmp 功 能: 比较字符串str1和str2的前n个字符串字典序的大小,但是不区分字母大小写。 返回值: 当str1str2时,返回值>0。 比较是这样进行的,先比较2个字符串的第1个字符字典序的大小,如果能比较出大转载 2011-09-25 15:31:45 · 1223 阅读 · 0 评论