c++类的构造函数和析构函数

由于stock类的初始化与int不同,因此常规语法无法使用。(指初始化类)
int year=2001;
struct thing;
{
char*pn;
int m;
};
thing amabob={“wodget”,-23};
stock hot={“sukie’s autos,inc.",200,50.25}
上面的数据是被隐藏的,即pn,m.
该程序不能直接访问数据成员,程序只能通过成员函数来访问数据成员,因此要设计成员函数,才能将对象初始化,而不是私有

stock gift;
gift.buy(10,24.75);

1:声明和定义构造函数(构造函数是函数)
stock (const string &co,long n,double pr)
{
company=co;
if(n<0)
   {
       std::cerr<<"number of shares can't be negative;"
                    <<company<<"shares set to 0.\n";
                    shares=0;
     }
     else
        shares=n;
     share_val=pr;
     set_tot();
  }               

使用构造函数

显示构造函数:来初始化对象
stock food=stock(“world cabbage”,250,1.25);
2:隐式构造函数
stock garment(“furry mason",50,2.5) //区别在于没有=和stock

也可以将构造函数与new一起使用:
stock*pstock=new stock(“electroshock games”,18,19.0);
这条语句创建一个对象,将其初始化为参数提供值,并将对象的值赋给pstock指针

stock1.show();

默认构造函数:
1:在未提供显示初始化值时,用来创建对象的构造函数
stock fluffy_the_cat;
默认构造函数可能如下:
stock::stock(){}

例如:

stock::()
{
   company="no name";
   shares=0;
   share_val=0.0;
   total_val=0.0;
   }

析构函数:
创建函数对象以后,程序会调用一个特殊的成员函数。
~stock:这叫析构函数的原型。它不执行任何操作。
stock::~stock()
{
}
以下是析构函数如何被调用的代码:
stock::~stock()
{
cout<<“bye,”<<company<<"!\n";
}//编译器决定何时调用析构函数。
1:创建的是静态储存类对象,则析构函数将在程序结束时被自动调用。
2:如果创建的是自动存储类对象,则其析构函数将在程序执行完代码块时自动被调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值