《第五周实验报告1-2》---增加构造函数,使对象在定义时能够进行初始化

原创 2012年03月19日 20:37:22
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:  Triangle1-1.cpp                    
* 作    者:  计114-3 王兴锋              
* 完成日期:  2012 年 3 月 19 日
* 版 本 号:  V 1.0

* 对任务及求解方法的描述部分
* 输入描述:设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化 
* 问题描述:
			(3)使用默认参数的构造函数,不给定实参时,默认边长为1;
* 程序输出:按要求输出
###上机感言:通过要求,体会各种类初始化的特点并熟练掌握。
* 程序头部的注释结束
*/

#include <iostream>
#include <Cmath>

using namespace std;

class Triangle
{
public:
	Triangle(float x = 1, float y = 1, float z = 1);//参数构造函数
	float perimeter(void);//计算三角形的周长
	float area(void);//计算并返回三角形的面积
	void showMessage();
private:
	float a,b,c; //三边为私有成员数据
};
Triangle::Triangle(float x, float y, float z)
{
	if (x + y > z && x + z > y && y + z > x && x > 0 && y > 0 && z > 0)
		a = x, b = y, c = z;
	else
	{
		cout << "您的赋值有误!" << endl;
		exit(0);
	}
}
float Triangle::perimeter(void)
{
	return a + b + c;
}
float Triangle::area(void)
{
	float p;

	p = (a + b + c) / 2;

	return sqrt(p * (p - a) * (p - b) * (p - c));
}

void Triangle:: showMessage()
{
	cout << "三角形的三边长分别为:" << '\t' << a << '\t' << b << '\t' << c<< endl;
	cout << "该三角形的周长为:" << perimeter() << '\t' << "面积为:" << area() << endl <<endl;
}

void main(void)
{
	//使用默认参数的构造函数,不给定实参时,默认边长为1
	Triangle Tri1;	//定义三角形类的一个实例(对象)
	Tri1.showMessage();
	//指定参数,按指定的参数进行赋值
	Triangle Tri2(7,8,9);	//定义三角形类的一个实例(对象)
	Tri2.showMessage();

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

类对象的初始化-构造函数

类对象的初始化方法: A、使用参数初始化表,对类中的成员变量进行初始化操作。 class Pen { public:         Pen(int size):m_size(s...
  • guoyuyouzi123
  • guoyuyouzi123
  • 2013年04月05日 12:00
  • 382

C++类可以不显示声明构造函数,在创建类对象时编译器自动调用默认的构造函数

#include "stdafx.h" #include #include using namespace std; // 没有显示声明构造函数,编译器会调用默认的构造函数 class Te...
  • ameyume
  • ameyume
  • 2014年07月08日 00:13
  • 4217

对象的赋值、对象的复制(拷贝构造函数)

对象的赋值、对象的赋值
  • sinat_34608734
  • sinat_34608734
  • 2017年04月25日 20:26
  • 883

c++构造函数成员初始化中赋值和初始化列表两种方式的区别

先总结下: 由于类成员初始化总在构造函数执行之前 1)从必要性:      a. 成员是类或结构,且构造函数带参数:成员初始化时无法调用缺省(无参)构造函数      b. 成员是常量或引用:...
  • zizi7
  • zizi7
  • 2016年08月31日 11:26
  • 5451

没有默认构造函数,如何定义对象数组

如果一个类没有定义默认构造函数,那么构造该类的对象数组将会是一个问题。于是实现了一个将new操作符掰开了来用的代码。首先分配内存,然后再在分配的内存上调用构造函数构造对象,下面的代码做一个简单的备忘。...
  • C12345SDN
  • C12345SDN
  • 2014年08月24日 10:35
  • 1944

coursera机器学习课程第五周——课程笔记

第五周课程学习结束,一直都是边上课边做笔记,没有想过在这里再梳理一遍然后将笔记整理出来,考虑之后觉得这一步很重要,可以借此对学过的这一周所有知识做一个梳理,方便自己更好的理解这些知识,而且这些笔记放在...
  • ccblogger
  • ccblogger
  • 2017年11月13日 18:29
  • 104

静态数据成员只能在类体外,且通过函数体进行初始化(静态数据成员是在程序编译时被分配空间的)

1 静态数据成员不能用参数初始化表对静态数据成员初始化 (1) 如果声明了类而未定义对象,则类的一般数据成员是不占内存空间的,只有在定义对象时,才为对象的数据成员分配空间。但是静态数据成员不属于某一个...
  • sandwich125
  • sandwich125
  • 2017年03月09日 10:30
  • 940

第五周项目一----通过增加构造函数使对象在定义时初始化(4种方法统编)

/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: 三角形类.cpp * 作者: 赵...
  • dongshidexiaohai
  • dongshidexiaohai
  • 2013年03月29日 10:58
  • 657

在构造函数的参数化列表中调用基类构造函数初始化继承来的成员变量

今天有人问道:在实例子类对象时,会先调用父类的构造函数,然后再调用子类的构造函数。 可为什么在有些子类中构造函数的参数化列表中还要调用父类的构造函数? 先看下面代码: class Base ...
  • bdss58
  • bdss58
  • 2014年10月21日 18:03
  • 2290

C++ 构造函数、默认构造函数、析构函数和对象初始化

#include using namespace std; class Student{ private: int m_age; int m_grade; ...
  • ivnetware
  • ivnetware
  • 2016年12月10日 12:37
  • 767
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《第五周实验报告1-2》---增加构造函数,使对象在定义时能够进行初始化
举报原因:
原因补充:

(最多只允许输入30个字)