初始c++中的类与对象

  • 具有相同或者相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例时对象。
  • 类具有属性,他是对象的状态的抽象,用数据结构来描述类的属性。
  • 类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
  • 类的定义由类头和类体两部分组成,类头由关键字class开头,然后是类名,其命名规则与一般标识符的命名规则一致。
  • class Name {
    public:
    类的共有接口
    private:
    私有的成员函数
    私有的数据成员定义
    protected:
    受保护的成员函数
    };
  • 在c++中,允许在结构体Stack和共用体Union中定义函数,他们也具有类的功能。与class不同的是,结构体和共用体成员的默认访问控制为public。一般情况下,应该用class来描述面向对象概念中的类。

定义一个栈结构的类Stack

const int STACK_SIZE = 100;
class Stack{
	int top;//数据成员:栈顶指针
	int buffer[STACK_SIZE];//数据成员:栈空间
public:
	Stack(){ top = 0; }
	int length() //成员函数:返回栈中元素的数目
	{
		return top;
	}
	bool push(int element)//成员函数:元素element入栈
	{
		if (top == STACK_SIZE)
		{
			cout << "Stack is overflow!\n";
			return false;
		}
		else
		{
			buffer[top] = element;
			top++;
			return true;
		}
	}
	bool pop(int &e);
};

对象
定义:类是用户定义的数据类型,对象是类的实例。

  • 对象的创建:
    定义了类以后,就可以定义类类型的变量,类的变量称为对象。比如:
Stack s1;//创建一个stack类的对象
Stack s2[10];//创建由对象数组表示的10个Stack类对象
  • new创建的对象称为动态对象,其存储空间在内存的堆区。动态对象用delete操作撤销。
Stack *p;
p=new Stack;
delete p;

调用类实例的成员函数

class A{
	int x;
public :
	void a()
	{
		cout << "a() is called." << endl;
	};
	void b()
	{
		cout << "b() is calles." << endl;
	}
};
int main(void)
{
	A e1;//创建A类的一个局部对象e1
	e1.a();//调用对象e1的成员函数a()对对象e1进行操作
	e1.b();//调用对象e1的成员函数b()对对象e1进行操作
	e1.x = 10;//错误,对象e1的数据成员x不可见的
	A *p;
	p = new A;//创建A类的一个动态对象,用p指向该对象
	p->a();//调用对象的成员函数a()对p指向的对象进行操作
	p->b();//调用对象的成员函数b()对p指向的对象进行操作
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值