33,311
社区成员
发帖
与我相关
我的任务
分享
21楼的兄弟你拿去运行看下
#include <iostream>
using namespace std;
class Foo
{
public:
int val;
// Foo()
// {
// };
virtual ~Foo()
{
};
protected:
private:
};
int main()
{
Foo bar ;
if ( bar.val == 0)
{
cout << "Data member val has been initialized to 0" << endl;
}
else
{
cout << "Data member val hasn't been initialized to 0" << endl;
}
}
3. int &vi=ival,&vi2=ival2;
vi=vi2;
这个怎么理解?(vi=vi2这句.是让它们相等。。这个我知道了。)我看不太懂。。
int *vi = &ival, *vi2 = &ival2;
*vi = *iv2;
//楼主你把我这段代码拿去
//运行看下结果在说
#include <iostream>
using namespace std;
class Foo
{
public:
int val;
// Foo()
// {
// };
virtual ~Foo()
{
};
protected:
private:
};
int main()
{
Foo bar ;
if ( bar.val == 0)
{
cout << "Data member val has been initialized to 0" << endl;
}
else
{
cout << "Data member val hasn't been initialized to 0" << endl;
}
}
//希望可以帮到楼主
//楼主学习很认真, 很积极很好
//有错误楼下指出,谢谢
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> ivec1, ivec2;
int ival;
//读入2个 VECTOR的元素值
cout <<"Enter numbers for vector(-1 to end):" <<endl;
cin>>ival;
while(ival !=-1)
{
ivec1.push_back(ival);
cin>>ival;
}
cout <<"Enter numbers for vector2(-1 to end):" <<endl;
cin>>ival;
while(ival !=-1)
{
ivec2.push_back(ival);
cin>>ival;
}
/*第一次根据第一个判断确定两个容器是否相等,如果是就继续第2次判断
如果第一个容器为0两个容器也就为0所以相等,经过第2次判断不满足两个
容器为0的情况,进行第3个判断
*iter1 == *iter2 && iter1!=ivec1.end() && iter2!=ivec2.end()
两个迭带器的值相等与两个容器的开始位置不等于结束位置进行循环
完了以后进行第4次判断
if(iter1 == ivec1.end())
经过第3个判断得出的结果,如果iter1==ivec1.end()
就证明循环就完全进行完的,没有停过,所以会到元素的下一个位置
所以可以的出最后的结论*/
//判断2个VECTOR是否相等
if (ivec1.size()!=ivec2.size())//判断2个VECTOR的大小是否相等
cout <<"Vector1 is not equal to vector2:" <<endl;//长度不等的VECTOR不相等
else if(ivec1.size()==0)//长度都为0的VECTOR相等
cout <<"Vector1 is equal to vector2." <<endl;
else
{//2个VECTOR长度相等且不为0
vector <int>::iterator iter1,iter2;
iter1=ivec1.begin();
iter2=ivec2.begin();
while(*iter1 == *iter2 && iter1!=ivec1.end() && iter2!=ivec2.end())
{
++iter1;
++iter2;
}
//根据上面的几次判断剩下的情况
//就一定是相等的
if(iter1 == ivec1.end())//所有元素相等
cout <<"Vector1 is equal to vector2." <<endl;
else
cout <<"Vector1 is not equal to vector2." <<endl;
}
return 0;
}
class A{};
A arr[10]; //可以,系统自己生成了默认构造函数
class A{
public:
A(){ //... }
};
A arr[10]; //可以,你自己写了一个默认构造函数
class A {
int a;
int b;
public:
A(int s, int t) {
a = s;
b = t;
}
};
//A arr[10]; 不可以,因为你屏蔽了系统为你创建的默认构造函数,就不能对数组元素进行初始化了
A arr[10] = {A(2,3), A(2,3), ...}; //这样可以,因为你对其进行了初始化
int *p=&ia[2]; // p = ia + 2
int j=p[1]; // j = p + 1 = ia + 2 + 1 = ia[3]
int k=p[-2]; // j = p - 2 = ia + 2 - 2 = ia[0]
while(*iter1 == *iter2 && iter1!=ivec1.end() && iter2!=ivec2.end()){
++iter1;
++iter2;
}