第四周(默认构造函数 无参为1)

/*

*copyright(c) 2014,烟台大学计算机学院

*All rights reserved。

*文件名称:第四周(三角形)

*作者:王忠

*完成日期:2015.4.1

*版本号:v1.0

*

*问题描述:输入三角形三条边长,求出面积 周长

*输入描述:输入三角形三条边长

*程序输出:输出面积 周长

#include <iostream>
#include <cmath>
using namespace std;
class Triangle
{
public:
    Triangle();
    Triangle(double x,double y=0,double z=0);
    double perimeter();
    double area();
    void showMessage();
private:
    double a,b,c;
};
int main(){
    Triangle Tri1;   //定义边长为1 1 1的三角形类实例
    Tri1.showMessage();
    Triangle Tri2(1.5);//定义边长为1.5 1 1的三角形类实例
    Tri2.showMessage();
    Triangle Tri3(1.5,1.5);//定义边长为1.5 1.5 1的三角形类实例
    Tri3.showMessage();
    Triangle Tri4(7,8,9); //定义边长为7 8 9的三角形类实例
    Tri4.showMessage();
    return 0;
}
void Triangle::showMessage()
{
    if(a+b>c&&b+c>a&&a+c>b)
    {
        cout<<"三角形边长为:"<<a<<' '<<b<<' '<<c<<endl;
        cout<<"三角形周长为:"<<perimeter()<<",面积为:"<<area()<<endl<<endl;
    }
    else
        cout<<"不构成三角形"<<endl<<endl;
}
double Triangle::perimeter()
{
    double d;
    d=a+b+c;
    return d;
}
double Triangle::area()
{
    double e,s;
    e=(a+b+c)/2;
    s=sqrt((e-a)*(e-b)*(e-c));
    return s;
}
Triangle::Triangle()
{
    a=1;b=1;c=1;
}
Triangle::Triangle(double x,double y,double z)
{
    a=x;b=y;c=z;
}

时间: 2024-11-05 22:54:59

第四周(默认构造函数 无参为1)的相关文章

Spring的applicationContext默认使用无参构造创建对象

1 public class User { 2 private String name; 3 4 public User() { 5 System.out.println("User的无参构造"); 6 } 7 8 public String getName() { 9 return name; 10 } 11 12 public void setName(String name) { 13 this.name = name; 14 } 15 16 } 1 <?xml versi

C++默认构造函数的问题

C++ defaul construct :缺省构造函数(默认构造函数) 定义:第一种   构造函数没有参数,即是 A()形式的 第二种   构造函数的全部参数由缺省值提供,A(int a=0,int b=0) 编译器添加的默认构造函数的条件:   如果创建一个类你没有写任何构造函数,则系统会自动生成默认的无参构造函数,函数为空,什么都不做(这只是一种情况而言,此构造函数是trival 派生类和基类的关系: 我们通常说的派生类和基类,我们调用派生类的自定义的构造函数的时候,派生类会自动调用基类中

子类构造函数是否会默认调用父类的无参构造函数

1 package test; 2 3 public class TestB { 4 5 public TestB() { 6 System.out.println("TestB的无参构造函数..."); 7 } 8 9 } 1 package test; 2 3 public class TestA extends TestB { 4 5 public TestA(int i) { 6 System.out.println(i); 7 } 8 9 public static void

子类构造函数会默认调用父类无参构造函数

1.调用父类无参构造函数是默认的! 子类的构造方法默认都去访问了父类的无参构造方法:在子类中的构造方法后都有一行默认语句 base() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Fu {   public Fu()     {         Console.WriteLine("fu");     } } class Zi : Fu {     public Zi()         : base()//不管是否显式调用,控制台都会输出fu

JavaSE8基础 子类中所有的构造方法默认访问父类中无参构造方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /*默认的:子类中所有的构造方法默认都会访问父类中无参构造方法*/ //父类 class Father { //无参构造函数 public Father() { System.out.println("父类无参构造函数"); } //有参构造函数 public Father(int num) { S

No default constructor for entity Java无参构造函数

异常 org.hibernate.InstantiationException: No default constructor for entity 当查询的时候返回的实体类是一个对象实例,是hibernate动态通过反射生成的 反射的Class.forName("className").newInstance();需要对应的类提供一个无参构造函数, 出现这种问题是一般都是实体类有一个有参的构造 ,没有无参构造, 下面说一下有参构造 和无参构造 1,每一个类在默认情况下,都会有一个无参

【C#基础】 可选参数调用、params、无参静态构造函数

C# 可选参数方法调用: 可选参数方法: 调用方式可以: 这样我们要是用age和grade的默认值这样我们就可以跳过不必要的 我们就可以指定year的值. 可选参数必须在所有必须参数之后 params可变参数一定要在最后一个 静态构造函数 没有修饰符 C#的新特征是可以给类写一个无参静态的构造函数,这种构造函数只执行一次. 编写静态构造函数的原因是,有一些静态的字段或属性在第一次使用类之前从外部初始化静态字段和属性. 无参构造函数和静态构造函数可以存在同一个类中. 如果是只读成员,他就是一个不可

C++构造函数的自动调用(调用一个父类的构造函数,有显性调用最好,否则就默认调用无参数的构造函数)——哲学思想:不调用怎么初始化父类的成员数据和VMT?

我总是记不住构造函数的特点,关键还是没有领会那个哲学思想:父类的构造函数一方面要初始化它自己的成员数据,另一方面也要建立它自己的VMT呀!心里默念一百遍:一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VMT,一定调用父类构造函数VM

C++类到底存不存在缺省无参构造函数

学习C++的时候有个问题老是忘,就是缺省无参构造函数,说的是定义类的时候,如果类本身没有构造函数,则调用一个缺省的无参构造函数,如果有构造函数,则就一定要按照构造函数的方式调用,这意味着如果定义了一个有参数的构造函数,那么在定义类的时候就一定要调用有参的那个构造函数,缺省的无参构造函数就不存在了. 说实话,当时学的时候感觉有点不可思议,但还是稀里糊涂的接受了,很多教材也是这样写的,但是真是这样吗,最近折腾llvm,它的IR对编译器动作表示的比较清晰,特意反汇编了一把看看,代码如下: #inclu