第四周(默认构造函数)

/*

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

*All rights reserved。

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

*作者:王忠

*完成日期:2015.4.1

*版本号:v1.0

*

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

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

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

#include <iostream>
#include <cmath>
using namespace std;
class Triangle
{
public:
    Triangle();
    double perimeter();
    double area();
    void showMessage();
private:
    double a,b,c;
};
int main()
{
    Triangle Tri;
    Tri.showMessage();
    return 0;
}
void Triangle::showMessage()
{
    cout<<"三角形边长为:"<<a<<' '<<b<<' '<<c<<endl;
    cout<<"三角形周长为:"<<perimeter()<<",面积为:"<<area()<<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;
}

时间: 2024-12-27 09:06:34

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

【C/C++】构造函数、默认构造函数、成员初始化列表

常见问题 Q1. 下列关于构造函数的描述中,错误的是( ) A. 构造函数可以设置默认的参数 B. 构造函数在定义类对象时自动执行 C. 构造函数可以是内联函数 D. 构造函数不可以重载 Q2. 下列代码中a.b的各个成员变量值是多少? 1 class Student 2 { 3 public: 4 Student() {} 5 void show(); 6 private: 7 string name; 8 int number; 9 int score; 10 }; 11 Student a

编译器生成默认构造函数的情况

在类没有显示声明构造函数的情况下,编译器并不总是为我们自动生成默认构造函数,以下4种情况,编译器才会为我们自动生成默认构造函数: 1.类中有一个类成员含有默认构造函数的,编译器会为该类自动生成默认构造函数,自动插入代码,调用该成员的构造函数: 2.基类中含有默认构造函数,编译器会为该类自动生成默认构造函数,自动插入代码,调用基类的构造函数: 3.类中含有虚函数时,由于编译器要为该类生成虚函数表vtable,并为该类的对象生成指向该vtable的vptr,所以需要为该类合成默认构造函数: 4.虚继

Unity3D的IL2CPP平台找不到默认构造函数的坑

最初发现这个问题的情况是,当游戏用IL2CPP平台发布IOS版本的时候,会遇到某些dll格式的插件会导致游戏抛异常崩溃,比如FullInspector和Behavior Designer.所抛的异常是找不到某些类的默认构造函数. 后来发现,不只是某些插件会报这种异常,很多json格式的序列化功能也会在IL2CPP平台上抛找不到默认构造函数的异常. 导致这个问题的原因是,IL2CPP版本在AOT编译时的一些优化机制导致的.想要详细了解这个机制的话可以看文档:http://docs.unity3d.

C++构造函数语意学——默认构造函数

概述 在 class 中,若程序员没有为该 class object 定义 default constructors,则编译器会根据需要产生一个 implicit default constructor,该 implicit default constructor 被认为是 trivial(无用的).那编译器怎样才能产生一个 nontrivial implicit default constructor?以下四个方面会产生nontrivial implicit default construct

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

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

C++ 合成默认构造函数的真相

对于C++默认构造函数,我曾经有两点误解: 类如果没有定义任何的构造函数,那么编译器(一定会!)将为类定义一个合成的默认构造函数. 合成默认构造函数会初始化类中所有的数据成员. 第一个误解来自于我学习C++的第一本书 <C++ Primer>,在书中392页:“只有当一个类没有定义构造函数时,编译器才会自动生成一个默认构造函数”. 实际上这句话也没有说错,它说明了默认构造函数定义的必要非充分条件,然而却给当时初学C++的我造成了一定的误解. 第二个误解依旧来自于Primer中的一句话:“合成的

C++对象模型之默认构造函数的构造操作

一个类,如果没有任何的用户声明的的构造函数,那么会有一个默认的构造函数被隐式地声明出来.这个被隐式声明的构造函数,究竟什么时候被合成.被编译器合成的默认构造函数究竟执行怎么样的操作,编译器如何处理用户定义的构造函数,就是本文要探讨的问题. 1.默认构造函数何时被合成 如果一个类没有任何的用户声明的构造函数,那么在当编译器需要的时候,编译器会为类合成一个默认的构造函数,它只用于执行编译器所需要的操作.注意,默认的构造函数是在编译器需要的时候被合成出来,而不是程序需要的时候,如果程序需要,则默认的构

C++基础知识—关于默认构造函数的一切

C++条款-关于默认构造函数的一切 默认构造函数(defaultconstructor): 默认构造函数是在未提供显示初始值时,用来创建对象的构造函数.如果没有提供任何构造函数,则C++将自动提供默认构造函数,默认构造函数没有参数,因为声明中不包含值.同时,当且仅当没有定义构造函数时,编译器才会提供默认构造函数.为类定义了构造函数后,程序员就必须为它提供默认构造函数,如果提供了非默认构造函数,但没有提供默认构造函数,则在初始化对象时调用默认构造函数是会出错的: Stack   ww;// 错误

c++值构造兼默认构造函数

friend ostream& operator<< (ostream&,String&); public: String(const char* str=NULL); //赋值构造兼默认构造函数(char) String(const String &other); //赋值构造函数(String) String& operator=(const String&other);       //operator= String operator+(

默认构造函数的作用

// 首先定义一个No_default类. class  No_default { public: No_default (const string&);  // 声明了一个构造函数,但是却没有默认构造函数! private: int a; string b; }; // 定义第二个类,其中有一个No_default类型的成员. class  B { public: No_default   my_mem;   // 类B也没有构造函数! }; B  b;