Think in C++

A:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
class One {
public:
void fun1 ( One a);
void fun2 (One * b );
class Two {
};
private:
One * pone;
One test;
};


错误:error C2460: “One::test”: 使用正在定义的“One”

结论:删去One test;我们发现编译通过,那么问题就在One test身上,test这里是个对象,而在One里的test尚未分配内存就使用One 来定义对象,故失败。

B::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
class two{
public:
void fun1(one* pone);
};
class one{
public:
one();
private:
};


错误:error C2061: 语法错误 : 标识符“one”

结论:在class two 前面加上class one;我们发现编译通过了,C++是按顺序编译类的,故在two编译的时候编译器必须存在one的声明~

C::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#include<iostream>
using namespace std;
void main()
{
//指针数组只能保存指针
int *a = new int[1];
int *b = new int[1];
int *c = new int[1];
int* e[3] = {a, b, c};
//二维数组指针
int array2[2][2];// = {{1,2},{3,4}};
int (*p)[2];
p = array2;
//引用的用法
int k = 2;
int &q = k;
q = 3;//修改q就等于修改k
cout<<3;
//数组引用
int test[5];
int (&l)[5] = test;
l[1] = 4;
cout<<test[1];
}


结论:数组这一块蛮弱的 哎 整个C++都是哥的薄弱环节.能不能赶上雄大,看天意吧~

D::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

void fun(int a[8]){
cout<<a[10];
};

//void fun (int (&a)[]){} ********************

void main()
{
//传递数组
int p[19] = {1,2,3,4,2,2,2,2,2,2,2,2,2,2,2};
fun(p);
//int (&a)[]//这样是失败的 *********************
int (&k)[19] = p; &&&&&&&&&&&&&&&&&&&&&&
fun(k);
}


错误:“abstract declarator”: 对零大小数组的引用非法

改正:int (&k)[19]

收获:数组长度不是参数类型的一部分。函数不知道传递给它的数组的实际长度,编译器也不知道,当编译器对实参类型进行参数类型检查时,并不检查数组的长度。

#include <iostream>//下列程序段有错吗?
using namespace std;
class A{ public: A(){cout<<"A"<<endl;};
};
class B {
public:
A a;
B() : a(){cout<<"B"<<endl;}
};
int main(){
B b(); //换成语句B b();呢? 函数?对象?
return 0;
}//


构造函数参数列表可以调用构造函数
尽量使用成员初始化表,初始化const成员只能使用成员初始化表。
class b : x(4),y(7)。。。。{ ….};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值