C++类的简单封装

       大部分人在学习C++之前都会用C来打基础,C语言是十分基础的一门语言,学习C语言对于计算机思维的启蒙是非常有帮助的。尽管C++是C语言升级后的一门语言,但它绝不仅仅是C语言派生出的产物,它完全可以说是另外一种语言,所以绝不可以抱着C语言基础不错的心态轻视C++(过来人的经验。。。)。


      首先是“类”,这是面向对象和封装的基础,由于C++没有Java那样的垃圾回收机制,所以要程序员自己选择在栈区或者堆区来实例化对象

栈区:

class Classname
{
  int a;
  ...
};

int main()
{
  Classname name;
  name.a=10;  //用 “.”访问成员变量
  return 0;
}

在栈区实例化对象,程序会自动调用析构函数来回收栈区的空间,先实例化的对象后回收。析构函数: ~classname(){},无参数,无返回值,用于回收再栈区实例化过的对象。


堆区:

class Classname
{
  int a;
  ...
};

int main()
{
  Classname *p = new Classname();
  p->a=10;  /用“->”访问成员变量
  delete p;
  p=NULL;
  return 0;
}

在堆区实例化对象要借助指针,而且一定要delete掉指向对象的指针(敲黑板),不然程序会一直占用那块被你new出来的内存。


封装

与Java类似,采用由public修饰的函数来访问由private修饰的变量。


class Classname
{
public:
  void setA(int _a)
  {
    m_strA=_a;
  }
  int getA()
  {
  return m_strA;
  }
private:
int m_strA;
};

int main()
{
  Classname name;
  name.setA(10);
  cout << name.getA() << endl;
  return 0;
}

这样可以比较容易地设置一些只读性的变量,和防止用户修改某些变量的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值