当前位置: 首页 > news >正文

服务于中小企业建网站微餐饮网站建设用途

服务于中小企业建网站,微餐饮网站建设用途,如皋市建设局网站,怎么做外国网站C的目标之一是让使用类对象就像使用标准类型一样,但是常规的初始化语法不适用于类似类型Stock: int year 2001; struct thing {char * pn;int m; }; thing amabob {"wodget",-23}; //有效初始化 Stock hot {"Sukies Autos…

C++的目标之一是让使用类对象就像使用标准类型一样,但是常规的初始化语法不适用于类似类型Stock:

int year = 2001;
struct thing
{char * pn;int m;
};
thing amabob = {"wodget",-23};
//有效初始化
Stock hot = {"Sukie's Autos,Inc.",200,50.25};
//编译错误

        不能像上面这样初始化Stock对象的原因在于,数据部分的访问状态是私有的,这意味着程序不能直接访问数据成员。程序只能通过成员函数来访问数据成员,因此需要设计合理的成员函数,才能成功地将对象初始化。

        如果使数据成员成为公有,而不是私有,就可以按刚才介绍的方法初始化类对象,但使数据成为公有的违背了类的一个主要初衷:数据隐藏。

        一般来说,最好在创建对象时对它进行初始化。例如:

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

        就Stock类当前的实现而言,gift对象的company成员是没有值的。类设计假设用户在调用任何其他成员函数之前调用acquire(),但无法强加这种假设。避开这种问题的方法之一是在创建对象时,自动对它进行初始化。为此,C++提供了一个特殊的成员函数——类构造函数,专门用于构造新对象,将值赋给它们的数据成员。更准确地说,C++为这些成员函数提供了名称和使用语法,而程序员需要提供方法定义。名称与类名相同。例如,Stock类一个可能的构造函数是名为Stock()的成员函数。构造函数的原型和函数头有一个有趣的特征——虽然没有返回值,但没有被声明为void类型。实际上,构造函数没有声明类型。

        构造函数:通过成员函数,为数据成员进行赋值。

声明和定义构造函数

        现在需要创建Stock的构造函数。由于需要提供3个值,因此为构造函数提供3个参数。(第四个值,total_val成员,是根据shares和share_val计算得到的,因此不必为构造函数停供这个值。)此时程序员可能指向设置company成员,而把其值设置为0;这可以使用默认参数来完成,所以函数的原型如下:

Stock(const string & co,long n = 0,double pr = 0.0);

        第一个参数是指向字符串的指针,该字符串用于初始化成员company。n和pr参数为shares和share_val成员提供值。Tips:没有返回类型。原型位于类声明的公有部分。


Stock::Stock(const std::string &co,long n,double pr)
{company = co;if(n<0){std::cout<<"Numer of shares can't be negative;"<<company<<"shares set to be 0."<<std::endl;}else {shares = n;}share_val = pr;set_tot();
}

上述代码和前面所说的函数acquire()相同。区别在于,程序声明对象时,将自动调用构造函数。


void Stock::acquire(const std::string &co,long n,double pr)
{company = co;if(n<0){std::cout<<"Numer of shares can't be negative;"<<company<<"shares set to be 0."<<std::endl;}else {shares = n;}share_val = pr;set_tot();
}

        成员名和参数名

        不要把参数名和类成员相同,否则最终写出的代码将是这样的:

shares=shares;

        为了避免这种情况,有两种方法,一种是在数据成员名中使用m_前缀;

string m_company;

        还有一种方法是,在成员名中使用后缀_:

string company_;

         使用构造函数

C++提供了两种使用构造函数来初始化对象的方式。

第一种:显式地调用构造函数:

Stock food = Stock("World Cabbage",250,1.25);

        这将food对象的company成员设置为字符串“World Cabbage”,将shares成员设置为250,以此类推。

第二种:隐式地调用构造函数

Stock garment("Furry Mason",50,2.5);

        这种格式更紧凑,它与下面的相似调用等价:

Stock garment = Stock("Furry Mason",50,2.5);

        每次创建类对象(甚至使用new动态分配内存)时,C++都使用类构造函数。下面是将构造函数与new一起使用的方法:

Stock *pstock = new Stock("Electroshock Games",18,19.0);

        这条语句创建一个Stock对象,将其初始化为参数提供的值,并将该对象的地址赋给pstock指针。在这种情况下,对象没有名称,但可以使用指针来管理该对象。

        构造函数的使用方式不同于其他类方法。一般来说,使用对象来调用方式:

stock1.show();

        但是无法使用对象来调用构造函数,因为在构造函数构造处对象之前,对象是不存在的,因此构造函数被用来创建对象,而不能通过对象来调用。

        默认构造函数

        默认构造函数是在未提供显式初始值时,用来创建对象的构造函数。例如:

Stock fluffy_the_cat;

        如果没有提供任何构造函数,则C++将自动提供默认构造函数。它是默认构造函数的隐式版本,不做任何工作,对于Stock来说,默认构造函数可能如下:

Stock::Stock(){}

        因此将创建fluffy_the_cat对象,但不初始化其成员,这和下面的语句创建x,但是没有提供值给它一样:

int x;

        默认构造函数没有参数,因为声明不包含值。

        当且仅当没有定义任何构造函数时,编译器才会提供默认构造函数。为类定义了构造函数后,程序员必须为它提供默认构造函数。如果提供了非默认构造函数,但是没有提供默认构造函数,则会出错。

        这样做的原因可能是想禁止创建未初始化的对象。然而,如果要创建对象,而不显式地初始化,则必须定义一个不接受任何参数的默认构造函数。

定义默认构造函数的方式有两种。一种是给已有构造函数的所有参数提供默认值。

另一种是通过函数重载来定义另一个构造函数——一个没有任何参数的构造函数。

        因为只能有一个默认构造函数,因此不要同时采用这两种方式。建议初始化所有对象,确保所有成员一开始就有已知的合理值。例如:

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

        

http://www.yayakq.cn/news/10897/

相关文章:

  • 在线图片编辑网站源码网站做的支付宝接口
  • 自己网站做seo宣传片制作拍摄公司
  • 网站建设公众号小程序属于什么湖北省建设工程人力资源网站
  • 油漆网站设计ppt那个网站做的好
  • 设计网站页面注意事项山东网页制作网站
  • 网站建设需要注意哪些问题商业计划书ppt免费模板下载
  • 做啥网站wordpress菜单底部导航
  • 网站建设策划案怎样做关键词网站
  • 单县城乡住房建设局网站东莞网络推广价格
  • 做网站设计的论文中摘要怎么写设计制作商城网站
  • 阿里云的网站建设方案汽车网址都有哪些
  • 最好的免费logo设计网站钟落潭有没有做网站的
  • 如果网站设计时中国建设工程造价管理协会网站
  • 网站建设找客户智能产品
  • 网站 简约百度网站认证
  • 网站打不开 其它能打开网站建设公司的市场营销方案模板
  • 媒体网站怎么做wordpress 元素用处
  • 泊头市做网站phpcms做网站
  • 适合个人做的网站有哪些摄影师个人网站模板
  • 做市场分析的网站知名的广告公司
  • dedecms网站地图调用营销方案怎么写?
  • pageadmin做网站seo关键词首页排名
  • 如何生成网站百度推广 手机网站
  • 免费网站空间女人房地产销售人员网站怎么做
  • 官方网站建设银行年利息是多少python编程网站推荐
  • 信息网站方案网站开发立项报告
  • 企业网站有哪些企业无锡seo关键词排名
  • 网站建设自助搭配系统昆明学网站建设
  • 会做网站开发 但是不会二次开发wordpress 添加控件
  • 建立网站需要多少钱萍畜湖南岚鸿首选大型企业网络建设方案