C++Simplify03-基础语法

参考《C++ Primer4版》(中文版)

 

1.      引用符号&只能出现在=的左边:int a = 9; int &b = a;

引用只是绑定的对象的别名:对于上面的 b+=2; a==2为真,当然b==2也为真。

注意:const引用是指向const的引用,非const引用只能指向非const类型的引用。

      const 也可以指向非const的对象

2.      typedef定义类型

typedef double wages; //则以后可以用wages定义double类型的变量

wages hourly;  //等价于doublehourly

作用:为了隐藏特定类型的实现,强调使用类型的目的

           简化复杂的类型定义,更易理解

           允许一种类型用于多个目的,同时使得每次使用该类型的目的明确

3.      枚举 enum关键字定义。如果不赋值则默认第一个为0,后面的依次比前面的大1.

初始化枚举成员的值必须是一个常量表达式(编译时能够就算出结果的整型表达式,整型字面值也是常量表达式)。

enum Forms{ shape = 1, sphere,  cylinder,  polygon};(切记不要丢分号)

4.      类类型 class包括数据成员和成员函数

访问标号控制类的成员在类外部是否可以访问。

public 类外部可以访问的公有成员;private类外部不可访问的私有成员

protected 仅仅派生类可以继承访问的成员

5.      注意:C++支持struct定义类类型。仅仅影响默认访问权限

Class默认private访问权限,struct默认public访问权限

6.      头文件.h

用于声明而不是用于定义,所以不应该包含变量和函数的定义

一些const对象定义在头文件中(常量)。如果const变量不是用常量表达式初始化,那么就不应该在头文件中定义。而应该和其他变量一样定义并初始化在一个源文件中。应在头文件中extern声明,以使多个文件共享。

7.      头文件经常需要其他头文件

避免多重包含:使用预处理器变量两种状态:#ifndef #define #endif

 

昨日三题解答

1.使用递归函数,求99+97+95+...+3+1之和。(答案:2500)

#include <iostream>

using namespace std;

int sum(long n,long m)

{

   if(n==m)

      return(m);

   else

      return(m+sum(n,m-2));

}

void main()

{

   int n,m;

  cout<<"输入范围:(n~m):"<<endl;

  cout<<"n=";   cin>>n;

  cout<<"m=";

  cin>>m;

  cout<<"从"<<n<<"到"<<m<<"的和为:"<<sum(n,m)<<endl;

}

2.写出加法计算的多个重载函数(intdouble类型参数重载、两个数和一组数相加

/**

 *名称:C++Review

 *作者:TskyFree

 *时间:2012年7月

 */

#include <iostream>

 

using namespace std;

 

int add(int num1,int num2);

double add(double num1,double num2);

double add(int count,double nums[]);

 

int main(void)

{

   int num1 = 0;

   int num2 = 0;

   double num3 = 0;

   double num4 = 0;

   int sum = 0;

 

   cout <<"请输入两个整数";

   cin >> num1>> num2;

   cout <<num1 << "+" << num2<<"=" <<add(num1,num2) << endl;

 

   cout <<"请输入两个小数";

   cin >> num3>> num4;

   cout <<num3 << "+" << num4<<"=" <<add(num3,num4) << endl;

 

   double nums[5] ={0};

   cout <<"请输入5个数:";

   for(int i = 0;i< 5;++i)

      cin>>nums[i];

  

   cout <<"本组数的和为:"<<add(5,nums)<< endl;

 

 

   system("pause");

   return 0;

}

 

int add(int num1,int num2)

{

   return num1+num2;

}

double add(double num1,double num2)

{

   return num1+num2;

}

double add(int count,double nums[])

{

   double sum = 0;

   for(int i = 0;i< count;++i)

      sum +=nums[i];

   return sum;

}

3.职工类设计(class Staff)

数据成员: ID号、姓名、性别、年龄、部门、薪水

成员函数:构造函数、析构函数、查看职工信息、部门调整、薪水更改。

 

class Staff

{

public:

   Staff(intaId,string aName,char aGender,int aOld,string aDep,int aSalary)

   {

      m_id = aId;

      m_name =aName;

      m_gender =aGender;

      m_department =aDep;

      m_salary =aSalary;

   }

   ~Staff()

   {

 

   }

   voiddisplayMessage()

   {

      cout<<"\n员工信息"<<endl

        <<"ID:"<<m_id<<endl

        <<"姓名:"<<m_name<<endl

        <<"性别:"<<m_gender<<endl

        <<"部门:"<<m_department<<endl

        <<"薪水:"<<m_salary<<endl;

   }

   voidchangeDepartment(string newDepartment)

   {

      m_department =newDepartment;

   }

   voidchageSalary(int newSalary)

   {

      m_salary =newSalary;

   }

private:

   int m_id;

   string m_name;

   char m_gender;

   int m_old;

   stringm_department;

   int m_salary;

};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值