int main()
{cout<
int main()
{
cout<b?a:b;
}
int max(int a,int b,int c)
{
int t;
{
t=max(a,b);
return max(t,c);
}
class Date
{
int d, m, y;
public:
Date(int dd, int mm, int yy)
{
d=dd;
m=mm;
y=yy;
}
Date(int dd, int mm)
{
d=dd;
m=mm;
}
}
class Date
{
int d, m, y;
public:
Date(int dd, int mm, int yy):d(dd),m (mm),y(yy)
{ }
Date(int dd, int mm): d(dd),m(mm)
{ }
}
class Box{
public:
Box();
Box(int ,int , int);
int volume();
private:
int height,width, length;
};
Box::Box()
{ height=10; width=10; length=10;}
Box::Box(int h, int w,int l):height(h),width(w),length(l)
{}
int Box::volume()
{ return width*length*height;}
int main(){
Box box1;
cout<<"The volume is "<
#include
#include
using namespace std;
class Person
{
public:
Person(char* name1,int a,double s);
void display(){cout<display();
Person P2(*P1); //调用复制构造函数,用P1的数据初始化对象P2
delete P1;
P2.display();
return 0;
}
|深复制:
通过一个对象初始化另一个对象时,不仅复制了 数据成员,也复制了资源的复制方式为深复制。
|深复制构造函数的特点:
定义:类名::类名([const]类名 &对象名);
Person::Person(const Person& P0) //复制构造函数的实现
{
name=new char[strlen(P0.name)+1];
strcpy(name,P0.name);
age=P0.age;
salary=P0.salary;
cout<<"ff"<
6.3 类的其他成员:
|常成员(指数据成员在实例化被初始后,其值不能改变)
#include
using namespace std ;
class Simple
{ int x, y ;
public :
void setXY ( int a, int b) { x = a ; y = b ; }
void printXY() { cout << x << "," << y << endl ; }
void constFun ( ) const
{ x ++ ; y ++ ; }//非法
};
|静态成员:
类成员冠以static声明时,为静态成员;
静态成员为同类对象共享;
静态成员函数与静态数据成员协同操作;
|静态成员函数的作用不是为了对象之间的沟通,而是为了
能处理静态数据成员,可以在不依赖某个对象的情况下,
访问静态成员。
class A
{
int n;
static int s;
}
|公有的静态成员的访问形式:
类名::静态成员的名字;
对象名.静态成员名字;
对象指针->静态成员名字;
静态成员函数内部直接访问;
|静态数据成员的声明及初始化:
类外声明
类型类名::静态数据成员【=初始化值】;
#include
using namespace std ;
class counter
{ static int num ;
public :
void setnum ( int i ) { num = i ;}
void shownum() { cout <
|静态成员函数仅可以访问静态成员函数或静态数据成员;
静态成员的引用不需要用对象名;
静态成员函数没有this指针;
|友元函数:
在类A以外的其他地方定义一个函数(函数B);
在类体中用friend对函数B声明,函数B即为函数A的友元函数,但A不是B的友元;
类B可以访问类A的私有数据成员;
当B为A的友元函数,则B的所有成员函数都为A的友元函数;
友元函数定义一定要按顺序,当B为A的友元函数,则必须先定义A再定义B;
样例:
class
{ private:
int i ;
friend void FriendFun(A * , int) ; //定义友元函数
public:
void MemberFun(int) ;
} ;
…
void FriendFun( A * ptr , int x )
{ ptr -> i = x ; } ;
void A:: MemberFun( int x )
{ i = x ; } ;
#include
using namespace std;
class A
{ public:
A(int x):a(x){ }
int a ;
}; class B
{ public:
B( int x, int y ) : aa(x) { b = y ; }
void out()
{ cout<<"aa = "<
|对象数组是指每一数组元素都是对象的数组;
二、总结及心得:
类作为自定义数据类型,具有封装性、继承性、多态性的特点,构造函数对数据进行初始,析构函数对数据进行删除的功能。其应用将主函数内容简化,将程序分为多个模块,无疑有利于书写长篇幅的系统,书写系统时应该分模块进行调节,虽然相比于C语言而言,其看似更繁,但可使我们转换思维方式,使我们拥有了“设计”的概念,类这一部分的学习对于本人这样初次接触的小白来说,无疑难如上青天,自知目前对类的认识不够深刻,虽然学习途中困难重重,但我觉不会轻言放弃的!