随笔分类 -  C++编程思想

摘要:面试题7:一个指针可以是volatile吗可以,因为指针和普通变量一样,有时也有变化程序的不可控性。常见例:子中断服务子程序修改一个指向一个buffer的指针时,必须用volatile来修饰这个指针。说明:指针是一种普通的变量,从访问上没有什么不同于其他变量的特性。其保存的数值是个整型数据,和整型变量不同的是,这个整型数据指向的是一段内存地址。面试题8:a和&a有什么区别请写出以下代码的打印结果,主要目的是考察a和&a的区别。#include<stdio.h>voidmain( void ) { inta[5]={1,2,3,4,5};int*ptr=(int *) 阅读全文

posted @ 2012-04-18 23:53 风尘女子 阅读(288) 评论(0) 推荐(0)

摘要:我们在使用istream类的对象cin进行一行输入的时候 往往遇到N多问题 比如我这样做char buf[100] ;cin>>buf ;cout<<buf ;这时候如果我们输入了 ddd ddd 那么只会输出 前三个ddd ,从而达不到我们预期的效果 这是因为流的设计是以空字符来结束提取的 ,空格是空字符 所以后面三个d就没有提取到buf中。 istream提供了 get 和getline 两个函数进行行的读取 ,但是在对于文本文件的操作时候 ,我们无疑选用getline ,这是从他们的提取特性来分析的 。get在遇到分隔符的时候(默认是换行) 就会停止读取 ,并且以 阅读全文

posted @ 2011-12-30 12:29 风尘女子 阅读(273) 评论(0) 推荐(0)

摘要:我们知道在C语言中许多文件操作的函数 很零散,在使用的时候不得不四处查找 ,我们是否能向C++中 的 CFile类等一样封装我们自己的文件操作呢?当然可以,我们这里我封装的是 C语言的文件操作函数 。实际上我们可以直接封装win32的API 函数 利用文件句柄进行文件操作,MFC的CFile类封装的就是WIN32的API ,这里我只做测试用C来实现封装类File ,下面的File类可以实现对文件的读写 以及清空功能,简单的功能反应出面向对象的程序设计的好处,将对文件袋饿操作封装成了一个整体,文件有了自己的属性和行为。对于FILE结构体指针 我们应该设计其为私有,这样做的是为了隐藏底层实现,从而 阅读全文

posted @ 2011-12-30 11:39 风尘女子 阅读(403) 评论(0) 推荐(0)

摘要:友元friend在c++中的应用 我们知道在c++的类访问权限中,private和 protected在类外面进行访问的时候 会因为权限而不能访问,友元就解决了这个问题 。可以这样理解,他为外部的 函数 或者类 进行了 访问授权,其实这已经超出OOP的范畴,但是对于C++而言是以实用为主,所以说C++并不是完全面向对象的语言 C++这一特性就破坏的C++的安全性 。我们要使用友元函数或者类 我们就要在类的定义中用 friend 进行相应的声明 。。。下面是友元函数的利用 ,我们利用友元函数进行对于类的私有成员和保护成员进行修改 #include <iostream>using na 阅读全文

posted @ 2011-12-29 20:20 风尘女子 阅读(149) 评论(0) 推荐(0)

摘要:看下面一段代码 #include "test.h" //看到这句我们重复了 三次 按照我们以往的编写 我们可能认为 他会出现变量函数 等重复定义的错误 在一个文件中这样写显然是不好 我这里是做演示 因为我们在大型项目开发中很有可能的重复包含 同一个头文件 为了防止错误的发生我们要再头文件中利用#idndef #ifdef 等预编译指令 来处理代码 #ifdef identifier#ifndef identifier identifier标示符 可以使变量的名字也可以是 宏的名字 等等 具体看MSDN 介绍主程序代码:#include <iostream>//# 阅读全文

posted @ 2011-12-22 08:34 风尘女子 阅读(234) 评论(0) 推荐(0)

摘要:这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中#else部分也可以没有,即: #ifdef 程序段1 #endif 这里的“程序段”可以是语句组,也可以是... 阅读全文

posted @ 2011-12-22 08:09 风尘女子 阅读(420) 评论(0) 推荐(0)

摘要:学了好久的 C++了 发现自己对于C/C++还是没有深入的了解 于是 咬咬牙啃起了 C++编程思想 希望能有所感悟 。。我以前是直接学C++的对于C不是很了解,然而又是在VC下 学习 所以 没有好好的 去学习 标准C++,直到我 看起C++编程思想 我发现真应该从头再学一遍了 。。。1、定义的声明的区别 :声明是 声明了标示符的存在 并没有为 其分配空间 ,而定义 是为其分配的一定的存储空间int * p ;//这是对指针的声明 并且定义 int p;//这是对整形变量的声明并且定义 exern void show() ;==void show() ;对于函数来说只要没有函数体 那么都是声明 阅读全文

posted @ 2011-12-22 06:27 风尘女子 阅读(170) 评论(0) 推荐(0)

导航