C++学习笔记

本文详细介绍了C++中对象的使用方法,包括对象的创建、调用、析构过程,以及对象数组的处理方式。同时深入探讨了指针的各种应用场景,如指针的值、初始化、指向不同变量等,并通过实例展示了如何利用指针修改变量值及更换指针所指向的地址。

对象

1、在C++中调用对象不用new。如下例:

class rectangel
{
public:
	rectangel(int l,int w){length=l;width=w;}
	rectangel(){cout<<"构造函数在运行...\n";}
	int area(){return length*width;}
private:
	int length;
	int width;
};
int main()
{
	rectangel a(3,4);
	cout<<"长方形a的面积为:"<<a.area()<<endl;
	rectangel b;
	cout<<"长方形b的面积为:"<<b.area()<<endl;
	return 0;
}

2、对象调用完后就会执行析构函数。例:

class A 
{
public:
	A();
	 ~A();
};
A::A(){cout<<"构造函数执行完毕!\n";}
A::~A(){cout<<"析构函数执行完毕!\n";}
int main()
{
	A a;
	return 0;
}
打印:

构造函数执行完毕!

析构函数执行完毕!


3、数组对象析构。例:

class A 
{
public:
	A();
	~A();
};
A::A(){cout<<"构造函数执行完毕!\n";}
A::~A(){cout<<"析构函数执行完毕!\n";}
int main()
{
	A a[2];
	return 0;
}
打印:

构造函数执行完毕!

构造函数执行完毕!

析构函数执行完毕!

析构函数执行完毕!

指针

4、指针的实际值。例:

int main()
{
	int i=1;
	cout<<&i<<endl;
	return 0;
}
打印:002CFD0

int main()
{
	int a;
    int *p;
    p=&a;
    cout<<&a<<endl;
    cout<<p<<endl;
	return 0;
}
打印:0022FB38

   0022FB38

指针初始化。例:

int main()
{
	int *p=0;
	cout<<p<<endl;
	return 0;
}
打印:00000000

为止指针赋值。例:

int main()
{
float *p=0;
			   
float a=3.14f;			   
p=&a;
return 0;
}


int main()
{

int a=1;
int *p;
p=&a;
cout<<*p<<endl;
cout<<a<<endl;
cout<<p<<endl;
cout<<&a<<endl;
return 0;
}
打印:

1

1

005DFEFC

005DFEFC

重点:

int main()
{
	int i;
	int *p=0;
	cout<<"i的地址为:"<<&i<<endl;
	cout<<"p的值为:"<<p<<endl;
	cout<<"p的内存地址为:"<<&p<<endl;
	/*cout<< "*p的值为" << *p << endl;*/因为没有赋值所以无法查看*p
	i=3;
	cout<<"i的地址为:"<<&i<<endl;
	p=&i;
	cout<<"p的值为:"<<p<<endl;
	cout<<"p的内存地址为:"<<&p<<endl;
	cout << "*p的值为" << *p << endl;
	return 0;

}
打印:

重点:用指针修改放在i中的数据

typedef unsigned short int ut;
int main()
{
	ut i;
	ut *p=0;
	i=5;
	p=&i;
	cout<<"i="<<i<<endl;
	cout << "&i=" << &i << endl;
	cout<<"*p="<<*p<<endl;
	cout << "p=" << p << endl;
	cout << "&p=" << &p << endl;
	cout<<"用指针来修改放在i中的数据...\n";
	*p=90;
	cout<<"i="<<i<<endl;
	cout << "&i=" << &i << endl;
	cout<<"*p="<<*p<<endl;
	cout << "p=" << p << endl;
	cout << "&p=" << &p << endl;
	i=9;
	cout<<"i="<<i<<endl;
	cout << "&i=" << &i << endl;
	cout<<"*p="<<*p<<endl;
	cout << "p=" << p << endl;
	cout << "&p=" << &p << endl;
	return 0;
}
打印:



更换地址更换值

int main()
{
			int i=10;
			int j=20;
			int *p=&i;//初始化时可以这样赋值
			cout<<"i:"<<"\t"<<i<<endl;
			cout<<"&i"<<"\t"<<&i<<endl;
			cout<<"j:"<<"\t"<<j<<endl;
			cout<<"&j"<<"\t"<<&j<<endl;
			cout<<"p"<<"\t"<<p<<endl;
			cout<<"*p"<<"\t"<<*p<<endl;
			p=&j;
			cout<<"更换地址后\n";
	        cout<<"i:"<<"\t"<<i<<endl;
			cout<<"&i"<<"\t"<<&i<<endl;
			cout<<"j:"<<"\t"<<j<<endl;
			cout<<"&j"<<"\t"<<&j<<endl;
			cout<<"p"<<"\t"<<p<<endl;
			cout<<"*p"<<"\t"<<*p<<endl;
			return 0;
}
打印:

分配堆空间:

int main()
{
	int *p=new int;//创建一个堆并分配内存
	*p=4;
	cout<<*p<<endl;
	delete p;//释放内存空间
	cout<<*p<<endl;
	p=0;
	p=new int;
	*p=8;
	cout<<*p<<endl;
	delete p;

	return 0;
}
打印:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值