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) 收藏 举报
浙公网安备 33010602011771号