学习的乐园

实践,交流,积累,提高!

导航

C++学习笔记之"类和对象III"

对象指针数组

#include <iostream> 
class M
{
public:
    M(){x=y=0;}
    M(int i,int j){x=i;y=j;}
    void print(){cout<<x<<","<<y<<endl;}
private:
    int x,y;
}; 
void main() 
{
    M m1(7,8),m2,m3(5,7);
    M *mm[3] ={&m1,&m2,&m3};//mm是一维指针数组,每个元素都是指向类M对象的指针,3个地址值分别给3个元素赋值
    for(int i=0;i<3;i++)
    {
        mm[i]->print();//输出各个对象成员的值
    } 
}

带参数的main函数

#include <iostream> 
void main(int argc,char *argv[])
{
cout<<”the number of command line arguments is ”<<argc<<endl;//参数个数
cout<<”the program name is ”<<argv[0]<<endl;//命令字
if (argc>1)
{
cout<<”the command line arguments:\n”;//其他参数
for (int i=0;i<agrc;i++)
{
cout<<argv[i]<<endl;
}
}
}

常类型

用const说明的类型,说明时必须进行初始化,其值不能更改

int const a=2;与const int a=2;是一样的//一般常量
class M
{
public:
    M(){x=y=0;}
    M(int i,int j){x=i;y=j;}
    void print(){cout<<x<<","<<y<<endl;}
private:
    int x,y;
};
const M(1,2);//常对象,不能被更新
char *const par1=stringpar1;//定义一个指向字符串的常指针
par1=stringpar2;//非法
*par1 = “m”;//合法
const char *par1=stringpar1;//定义一个指向字符串常量的指针
par1=stringpar2;//合法
*par1 = “m”;//非法
//注意const的位置
const double & v;//v是一个常引用,引用的对象不能被更改
v=12.3;//非法

常指针和常引用常作为函数的形参

#include <iostream>
class K
{
public:
    K(int i){x=k;}
    int setK() const{return k;}//常成员函数,只有常成员函数常有资格操作常量或常对象(参数、函数体里的变量)
private:
    int k;
};
int add(const K& g1,const K& g2);//形参引用
void main()
{
K k1(8),k2(17);
int s=add(k1,k2);//实参对象
cout<<s<<endl;
}
int add(const K& g1,const K& g2)
{
int sum = g1.setK()+g2.setK();
return sum;
}
常数据成员

#include <iostream>
class S
{
public:
    S(int i);
    void print();
    const int& r;
private:
    const int a;
    static const int b;
};
const int S::b=10;//对静态成员b进行初始化
S::S(int i):a(i),r(a)//冒号后面是初始化成员列表,初始化常数据成员a,b
{
}
void S::print()
{
    cout<<a<<":"<<b<<":"<<r<<endl;
} 
void main()
{ 
S s1(100),s2(0);
s1.print();
s2.print(); 
}

posted on 2010-07-31 22:38  CrazeCoder  阅读(162)  评论(0)    收藏  举报