您的位置:首页 > 编程语言 > C语言/C++

从C#重返C++学习过程总结

2007-05-22 12:27 501 查看
1.类
类在设计时前面没有访问修饰符,统一为Class;类的成员定义时(包括函数成员,数据成员),才使用访问修饰符;而且是分类放置,比如,


class Test




...{


public:


void Function1(int x);


private:


string sText;


int x;


}

类中函数实现是在类的外面实现的(下面讲的隐式内联函数可放在内部),与普通函数不同的是在实现函数时要指明类的名称:


void Test::Function1(int x)




...{


}

类中成员函数可以带默认形参值:


void Test::Function1(int x=500)




...{


}

构造函数:如果没有定义构造函数,编译系统会在编译时自动生成一个默认形式的构造函数,它不做任何事情.

2.内联函数
内联函数就是小型函数,牺牲空间来节省函数调用的开销,一般用作比较小的函数,即函数内部没有循环、开关语句等。内联函数被发明出来

就是为了取代C中的宏,因为宏是单纯的替换而没有类型检查所以经常出毛病
隐式声明:将函数体直接放在类主体中
显示声明:函数体实现时加上inline,如:


inline void Clock::ShowTime()




...{


}

3.双冒号::
在C++里的,::是“域操作符”。比如声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成void A::f(),表示这个f()函数是类A的成员函数。

::另外的用法: 在派生类中覆盖基类同名成员时,使用::可以访问已经被覆盖了的基类的同名成员(public),如:obj.Class1::Function1();

::另外的用法: 就是直接用在全局函数前,表示是全局函数。比如在VC里,你可以在调用API函数里,在API函数名前加::。

4.new 和 delete
在C++中,new和delete是建立和删除堆对象的两个运算符
new 动态分配内存,或称动态创建堆对象,格式:new 类型名 (初始列表)
a.建立普通对象就是赋值操作
如: int *point;
point = new int(2); 表示动态分配了用于存放int类型数据的空间,并把初始值2放入该空间,然后将首地址赋值给指针point
b.建立对象是类的一个实例对象,根据实际情况调用构造函数.用delete来删除new来创建的对象,释放指针所指向的内存空间.
如:


class Point




...{


public:


Point()




...{ X=Y=0; cout<<"调用默认构造函数Point()"<<endl; }


Point(int xx,int yy)




...{ X=xx; Y=yy; cout<<"调用有参构造函数Point(int xx,int yy)"<<endl; }


~Point()




...{ cout<<"Destroy Point()"<<endl; }


int GetX()




...{ return X; }


int GetY()




...{ return Y; }


private:


int X,Y;


};




void main()




...{


Point *point1=new Point;//没有给出初始值,因此调用默认构造函数


delete point1;//删除对象,自动调用~Point()


point1=new Point(1,2);//调用有参构造函数


delete point1;


}






/**//* //输出结果


调用默认构造函数Point()


Destroy Point()


调用有参构造函数Point(int xx,int yy)


Destroy Point()


Press any key to continue


*/



c.创建数组对象
......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: