返回信息流基于对象(object based)?为什么是基于对象
类(class):通过对一组数据的抽象来建立问题的模型。
继承(inheritance):对现有代码的重用。
动作被称为表达式(expression).
以分号结尾的是语句(statement)最小单元
Iostream是输入输出库标准文件
#include<iostream> 注意iostream没有后缀
想输出换行符时,可以用cout<<”\n”;也可以用cout<<endl;
在输入两个连续字符时,可以用两个>>例如:cin>>ifile>>ofile
为了对文件进行打开和写入操作,必须包括头文件fstream #include <fstream>
&是取地址符
*是解引用符。
在c++中,指针的作用是管理和操作动态分配的内存。
静态和动态内存分配的区别:
1 静态是有名字的变量,可以直接对其进行操作。动态是没有名字的变量,使用指针对其进行操作。
2 静态的可以自己释放,动态的要由程序员自己进行分配。通过new和delete来实现。
Int *pint=new int(1024)
Int *pint=new int[4] <-用数组
Delete pint
Delete [] pia
如果在程序最后忘记删除动态分配的内存,则会出现内存泄漏(memory leak)
类的形式:
Class classname{
Public:
//
Private:
//
}
通过两个成员访问操作符(member access operator),可以调用一个有名字的成员函数,分别为点操作符(.),以及用于类 对象的箭头(->)
Int min_val=myarray.min();
Int max_val=parray->max();
Public的成员可以在程序的任何地方进行访问,private的成员只能在该类的成员函数和友元(friend)中被访问。一般情况下,public是存放的公有成员函数,private内存放的是数据成员函数。由于成员函数和数据成员不能共用一个名字,因此在数据成员前加一个下划线(_),如 int _size;
构造函数(constructor)用于初始化对象,在类对象被最后一次被使用后,它的析构函数(destructor)就会自动被调用。用~来标识析构函数。
C++支持函数重载(function overloading)的机制,它允许两个函数应用同一个名字,但是条件是它们的参数不能相同。
(::)是操作域。   
被继承的类叫作基类(base class),从基类中派生出来的叫做派生类(derived class)
操作系统把它能完成的功能能函数的形式提供给应用程序使用,应用程序对这些函数的调用叫做系统调用,这些函数的集合就是windows系统提供给程序的接口(application programming interface),即API.如createwindow就是一个api函数。
关于句柄(handle),资源的标识。操作系统要管理资源,要通过句柄来找到相应的资源。分为图标句柄(hicon),光标句柄(hcursor),窗口句柄(hwnd),应用程序实例句柄(hinstance).
字节(byte) 字(word) 位(bit)
一个字节由8位组成,一个字由4个字节组成。
在所有的符号类型中,最左边的是符号位,1代表负数,0代表正数。
在整型文字常量前加一个0,代表是8进制的数,加上0x,为16进制的。
长整型的在数后面加上L(大写),无符号的在最后加上u,浮点型在后面加上f
在面对windows编程时,要包括头文件
#include<windows.h>
#include<stdio.h>
关于winmain函数,int WINAPI WinMain
在此WINAPI表示它后面的函数是API函数,它本身并不是函数。WNDCLASS指窗口类。在使用窗口类前要对其进行注册,RegisterClass(&wndcls),再进行创建窗口,CreateWindow(),ShowWindow(),UpdateWindow()
#include<iostream.h> //在输入输出文件时,要包括这个头文件
int main()
{
int value=2;
int pow=10;
cout<<value<<" raised to the pow of "<<pow<<":\t";
int res=1;
for(int cnt=1;cnt<=pow;cnt++)
res=res*value;
cout<<res<<endl;
}
注意#include<iostream.h>与#include<iostream>的区别
<iostream>比<iostream.h>更新,在使用时,如果使用#include<iostream>必须在后面加上using namespace std,如果使用#include<iostream.h>就不用了。
变量名:变量的标识符(identifier)
用解引用符来定义指针(*)
下面对指针的定义是合法的:
Int *pi=0; //pi被初始化“没有指向任何对象”
Int *pi2=&ival //pi2被初始化为ival的地址
对于指针类型,如果只是持有地址值,那么指针类型并不太重要,可以用空类型指针来实现,void * 它可以被用于任何类型的地址赋值。
要使用string类型,一定要包含头文件#Include<string>
String是c++新加的一种类型。
为了防止对数据的误操作,在定义数据时,可以用const int bufsize=512;这样来定义
Bool类型可以把一个对象赋值为true false
数组可用一组数来进行初始化,这些数放在大括号中,例如:int ia[array_size]={0,1,2};
此时,不用指定维数,根据输入的数来自动确定维数。
多维数组可以这样定义:
Int ia[4][3]={
{0,1,2},
{3,4,5},
{6,7,8},
{9,10,11}
}
如果定义一个数组int ia[]={0,1,2,3,4};
那么ia代表第一个元素的地址,它的类型是数组元素的指针。因此,ia 和&ia[0]都是返回第一个元素的地址。因此,*ia和ia[0]都是代表的第一个元素的值。
使用sizeof前要包括#include<cstddef>文件,在使用时注意一下:int *pi=new int[12];
Sizeof(*pi)和sizeof(pi)的值全是4,(因为对于int类型的计算机是4个字节)。注意sizeof的值不是数组中元素的个数。
域(scope):局部域,名字空间域,类域
局部域:是指包含函数中的程序部分。
程序最外面的是全局域。
String是c++新加的一种数据类型,相当方便。在使用时,包括#include<string>即可。
String类有很多函数可以调用,查找函数find(),反向查找函数rfind(),find_first_of()查找包含字符串的任何字符,返回第一个值,子串函数substr()等,size()函数,它还重载了很多操作符,如+,+=,<等。其中+可以直接加上一个字符串。
C++中,对象可以静态分配,也可以动态分配(程序执行时调用函数来分配)。这两种方法主要是效率与灵活性之间的平衡准则不同。
以c++中定义私有数据成员名字时,在前面加一个_。
这是一条镜像帖。来源:北邮人论坛 / cpp / #14416同步于 2008/10/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
自己总结的c++笔记
tthinker
2008/10/20镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。