|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1,下边是可以正确执行的例子:
#include<iostream>
using namespace std;
class Test{
int num;
double f1;
public:
Test(int n){num = n;}
Test(int n,double f){num=n;f1=f;}
int GetNum () {return num;}
double GetF() {return f1;}
};
int main(){
Test one[2] = {2,4},*p; //这里有一个关于one数组的问题:这里的形式和Test one[2] = {Test(2),Test(4)}是同等的吗
Test two[2] = {Test(1,3.2), Test(5,9.5)}; //如果上边的同等,那么这里就应该可以写成Test two[2]={(1,3.2),(5,9.5)},但是我试了一下,发现并不可以这样写!!!
for (int i=0;i<2;i++)
{cout << "one["<<i<<"]="<<one[i].GetNum()<<endl;}
p=two;
for (int i=0;i<2;i++,p++)
cout<<"two["<<i<<"]=("<<p->GetNum()<<","<<p->GetF()<<")"<<endl;
}
2,下边是有问题的代码
#include<iostream>
using namespace std;
class Test{
int num;
double f1;
public:
Test(int n){num = n;}
Test(int n,double f){num=n;f1=f;}
int GetNum () {return num;}
double GetF() {return f1;}
};
int main(){
Test *one[2] = {new Test(2),new Test(4)},*p;
Test *two[2] = {new Test(1,3.2),new Test(5,9.5)};
for (int i=0;i<2;i++)
{cout << "one["<<i<<"]="<<one[i]->GetNum()<<endl;}
p=two; //编译器会提示这里报错,请问这里跟上边的例子区别在哪了,为什么不能用同样的方法呢???
for (int i=0;i<2;i++,p++){
//cout<<"two["<<i<<"]=("<<p->GetNum()<<","<<p->GetF()<<")"<<endl;
}
说是指针的问题,写着写着就发现还有函数形式的问题 ,请各位大神帮我解答一下,谢谢啦!!! |
|