
C/C++
文章平均质量分 62
yaoxinchao
这个作者很懒,什么都没留下…
展开
-
这样学习计算机
我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子。比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是对于程序员来说可能并不太好,原因有两个:虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。 大量的封装好的类库也屏蔽了很多实现细节。一段时间后,你会发现你知其然,不知所以然。。原创 2012-11-01 18:13:26 · 1099 阅读 · 0 评论 -
友函数访问类的私有数据成员
#include "stdafx.h"class CAnimal{public : int m_sex;public: void SetSex(int sex) { m_sex = sex; } //****************************** //定义友元函数 friend int GetSex(CAnimal& am); /原创 2012-10-22 22:03:58 · 956 阅读 · 0 评论 -
复制文件中的内容到另一个文件
// C String.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include#includeint main(int argc, char* argv[]){ using namespace std; char arrstr[1024]原创 2012-10-24 20:44:43 · 1424 阅读 · 0 评论 -
虚拟继承
#includeenum{BLACK = 1, BROWN};class CHuman{public : int m_hairColor;};class CFather :virtual public CHuman{};class CMother :virtual public CHuman{};class CMe : public CFather , public原创 2012-10-23 15:52:26 · 558 阅读 · 0 评论 -
将C字符串转换为整数
// c string to int.cpp : Defines the entry point for the console application./////功能::将C字符串转换为整数#include "stdafx.h"#include#include ////atoi()#define MAX 65535int main(int argc, char* argv原创 2012-10-24 21:36:21 · 1034 阅读 · 0 评论 -
子类无权访问父类的私有数据成员
// 111.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeclass person {int age;public: void SetAge(int nAge) { age = nAge; } int GetAg原创 2012-11-03 17:31:57 · 1755 阅读 · 0 评论 -
使用向量
// String.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#includeint main(int argc, char* argv[]){ using namespace std; vector v; cout<<"E原创 2012-10-25 12:01:20 · 703 阅读 · 0 评论 -
string对象具有类似数组的行为
可以像处理数组那样来处理String 对象!// String.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#includeint main(int argc, char* argv[]){ using namespace std; st原创 2012-10-25 10:49:22 · 1074 阅读 · 0 评论 -
C++中字符串I/O
可以使用cout和插入操作符可以使用cin和提取操作符>>时,方式和其他数据一样,但要注意:>>会忽略最初的空白字符,并在遇到更多的空白字符时停止读入!// String.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include#includ原创 2012-10-25 10:26:47 · 1416 阅读 · 0 评论 -
string对象和C字符串之间的转换
// String.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#includeint main(int argc, char* argv[]){ using namespace std; string string_variab原创 2012-10-25 11:03:44 · 2977 阅读 · 0 评论 -
使用动态数组
1、定义一个指针类型如:typedef double* DoubleArrayPtr;2、声明一个指针变量如: DoubleArrayPtr a;3、调用newa = new double[ array_size ];4:、动态数组的长度在方括号中给出5、像普通数组那样使用6、调用delete [ ]如:delete [ ] a;原创 2012-10-26 12:53:04 · 1566 阅读 · 0 评论 -
多维动态数组
《C++ Primer》中说:在C++中没有多维数组,只有元素师数组的数组。如:要想创建一个二维整数数组,首先要创建一个一维动态数组,它由int *类型的指针构成。int*就是这个一维int指针数组的类型。 下面举例说明// String.cpp : Defines the entry point for the console application.//#incl原创 2012-10-26 16:02:26 · 783 阅读 · 0 评论 -
继承
///公有继承#include#includeclass person{private: char name[20]; int age; bool sex;///0代表女,1代表男public: person() { strcpy(name, ""); sex = 1; age = 0 ; } pers原创 2012-11-01 18:03:52 · 912 阅读 · 0 评论 -
一个类的友元类能访问类的私有数据
// test.cpp : Defines the entry point for the console application.//#include "stdafx.h"class CAnimal{public : int m_sex;public: void SetSex(int sex) { m_sex = sex; } //*******原创 2012-10-22 22:06:12 · 1707 阅读 · 1 评论 -
getchar()、getch()、getche()
#include#includevoid main(){ char ch; ch = getche(); printf("%c\n",ch);} #include#includevoid main(){ char ch; ch = getch(); printf("%c\n",ch);} #includevoid main(){原创 2012-10-21 14:07:57 · 656 阅读 · 0 评论 -
真正认识 realloc 的工作方式。
realloc 用过很多次了。无非就是将已经存在的一块内存扩大或缩小。char* p = (char*)malloc(1024);char* q = (char*)realloc(p,2048);if(!q){coutexit(-1);}q = p; 我们定义一个指针变量q的真实目的是:可以防止当内存分配不成功时,不至于将以前的数据丢失!现在的问题是我们原创 2012-02-24 21:42:16 · 616 阅读 · 0 评论 -
强制类型转换
如果想把一个变量的值赋给不同类型的变量,可以进行类型转换。类型转换的方法如下。(1)将实型数据(单、双精度)赋给整型变量时,舍弃实数的小数部分。(2)将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。(3)将一个双精度型数据赋给单精度变量时,截取前7位有效数字存放到单精度变量的存储单元中。(4)字符型数据赋给整型变量时,由于字符只占一个字节,整型变量占两个字节,原创 2012-02-24 21:56:38 · 2609 阅读 · 0 评论 -
C++中引用问题
指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变;而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量). 引用必须初始化. 但是用对象的地址初始化引用是错误的,我们可以定义一个指针原创 2012-02-24 22:26:44 · 792 阅读 · 0 评论 -
#pragma once与#ifndef #define ...#endif的区别
#pragma once 这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次 #pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。 #pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上转载 2012-02-25 21:20:06 · 621 阅读 · 0 评论 -
如何提高C++的效率
自从七十年代C语言诞生以来,一直以其灵活性、高效率和可移植性为软件开发人员所钟爱,成为系统软件开发的首选工具。而C++作为C语言的继承和发展,不仅保留了C语言的高度灵活、高效率和易于理解等诸多优点,还包含了几乎所有面向对象的特征,成为新一代软件系统构建的利器。相对来说,C语言是一种简洁的语言,所涉及的概念和元素比较少,主要是:宏(macro)、指针(pointer)、结构(struct)、原创 2012-02-24 21:40:31 · 577 阅读 · 0 评论 -
static成员
C++中static类数据成员C++中static类数据成员是指以下两种: 类static成员函数 和 类static数据成员一:使用类的static成员的优点 1:static成员的名字是在类的作用域中,因此可以避免与其他类的成员或者全局对象名字的冲突 2:可以实施封装。static成员可以是私有成员,而全局对象不可见 3:通过阅读程序容易看出来static原创 2012-02-25 20:11:53 · 712 阅读 · 0 评论 -
extern "C" 详解
作者:宋宝华 e-mail:21cnbao@21cn.com 出处:太平洋电脑网1.引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程 式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟转载 2012-02-25 20:45:04 · 630 阅读 · 0 评论 -
C++下多线程的创建
在C语言下面,创建多线程不是很复杂,直接调用win32的CreateThread函数就可以了。但是怎么用C++创建多线程确实是一个问题。一方面,创建线程中的函数指针不能是成员函数,一方面我们希望可以把成员函数当作是线程的入口函数,这中间应该怎么调和呢? 我想,要想做到这一点可以充分利用C++语言的两个特性,一个是this指针,一个就是静态函数。利用this指针可以传递入口参数,原创 2012-10-18 21:04:26 · 2837 阅读 · 0 评论 -
C中程序的内存分配
一、预备知识-程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) - 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构中的堆是两回事,分配方式倒是原创 2012-10-18 21:00:26 · 881 阅读 · 0 评论 -
C++多源码文件简单组织
基本上和C的是一样的,只不过C++的方法要在类中声明。看一个简单实例。 ainimal.h 类里面对外公开的信息。 #ifndef _ANIMAL_H__ #define _ANIMAL_H__ #include using namespace std; class Anim转载 2012-10-18 20:56:08 · 914 阅读 · 0 评论 -
为函数设置“动态参数”
#include#includevoid ConnectData(int i , ...){ using namespace std; va_list ap; va_start(ap , i); while(i--) { char* ctemp = va_arg(ap ,char*); int itemp = va_arg(ap,int); float ftemp =原创 2012-12-15 10:51:20 · 2496 阅读 · 0 评论