c++的面向对象基础

原创 2006年05月18日 15:58:00

所有程序均在VC++6.0英文版中运行成功。

1、p329

#include <stdio.h>
#include <iostream.h>
/* 本程序的作用是输出一行字符 */
void main()
{
  printf("This is a c++ program./n");
  cout<<" This is a c++ program./n";//本行输出一行字符
}

2、p331

#include <iostream.h>
void main()
{cout<<"please enter your name and age:"<<endl;
 char name[10];
 int age;
 cin>>name;
 cin>>age;
 cout<<"your name is"<<name<<endl;
 cout<<"your age is "<<age<<endl;
}

3、p333

#include <iostream.h>
int max(int a,int b,int c)         //求3个整数中的最大者
{ if (b>a) a=b;
  if (c>a) a=c;
  return a; }
float max(float a,float b,float c) //求3个实数中的最大者
{ if (b>a) a=b;
  if (c>a) a=c;
  return a; }
long max(long a,long b,long c)     //求3个长整数中的最大者
{ if (b>a) a=b;
  if (c>a) a=c;
  return a; }

void main()
{int a,b,c;float d,e,f;long g,h,i;
 cin>>a>>b>>c;cin>>d>>e>>f;cin>>g>>h>>i;
 int m;
 m=max(a,b,c);                    //函数值为整型
 cout<<"max_i="<<m<<endl;
 float n;
 n=max(d,e,f);
 cout<<"max_f="<<n<<endl;
 long int p;
 p=max(g,h,i);
 cout<<"max_l="<<p<<endl;
}

4、p335

#include <iostream.h>
int max(int a,int b,int c) //求3个整数中的最大者
{if (b>a) a=b;
 if (c>a) a=c;
 return a; }
int max(int a,int b) //求二个整数中的最大者
{if (a>b) return a;
else return b;}

void main()
{int a=7,b=-4,c=9;
 cout<<max(a,b,c)<<endl;  //输出3个整数中的最大者
 cout<<max(a,b)<<endl;    //输出二个整数中的最大者
}

5、p335

#include <iostream.h>
#include <iomanip.h>
void main()
{int a=10;
 int &b=a;               //声明b是a的引用
  a=a*a;
  cout<<a<<setw(6)<<b;  //a的值变化了,b的值也应一起变化
  b=b/5;
  cout<<b<<setw(60)<<a; //b的值变化了,a的值也应一起变化
}

6、p336

void swap(int a,int b)
{int temp;
 temp=a;
 a=b;
 b=temp;                //实现a和b的值互换
}

void main()
{int i=3,j=5;
 swap(i,j);
 cout<<i<<","<<j<<endl; //i和j的值未互换
}

7、p337

#include <iostream.h>
void swap(int &a,int &b)
{int temp;
 temp=a;
 a=b;
 b=temp;
}

void main()
{int i=3,j=5;
swap(i,j);
cout<<"i="<<i<<""<<"j="<<j<<endl;
}

8、p338

#include <iostream.h>
inline int max(int a,int b,int c)     //这是一个内置函数
{ if(b>a) a=b;
  if(c>a) a=c;
  return a;
}

void main()
{int i=7,j=10,k=25,m;
 m=max(i,j,k);
 cout<<"max="<<m<<endl;
}

9、p340

#include <string.h>
struct student
{char name[10];
 int num;
 char sex;
};
void main()
{
student *p;
p=new student;
strcpy(p->name,"Wang Fun");
p->num=10123;
p->sex='M';
delete p;
}

10、p346

#include <string.h>
#include <iostream.h>
void main()
{class stud               //声明一个类
{private:                 //私有部分
   int num;
   char name[10];
   char sex;
  public:                //公用部分
 stud()               //定义构造函数,函数名与类名相同
 {num=10010;          //给数据赋初值
  strcpy(name,"Wang_li");
  sex='F';}

  void display()
  {cout<<"num:"<<num<<endl;
   cout<<"name:"<<name<<endl;
   cout<<"sex:"<<sex<<endl;}
};
stud stud1;              //在定义对象stud1时自动执行构造函数
stud1.display();          //从对象外面调用display函数
}

11、p348

#include <string.h>
#include <iostream.h>
class stud                   //声明一个类
{private:                    //私有部分
 int num;
 char name[10];
 char sex;
public:                       //公用部分
 stud(int n,char nam[],char s)//构造函数
 {num=n;
  strcpy(name,nam);
  sex=s;}
 ~stud()                      //析造函数
 {}

 void display()               //成员函数,输出对象的数据
 {cout<<"num:"<<num<<endl;
  cout<<"name:"<<name<<endl;
  cout<<"sex:"<<sex<<endl;}
};
void main()
{
stud stud1(10010,"Wang_li",'f'),stud2(10011,"Zhang_fun",'m');//建立两个对象
stud1.display();              //输出学生1的数据
stud2.display();              //输出学生2的数据
}

 

12、p349

#include <string.h>
#include <iostream.h>
class stud                         //声明一个类
{private:
 int num;
 char name[10];
 char sex;
public:
  stud(int n,char nam[],char s); //对构造函数的原型声明
  ~stud();                       //对析构函数的原型声明     
  void display();                //对成员函数display的原型声明
};

stud::stud(int n,char nam[],char s) //对构造函数的定义
{num=n;
strcpy(name,nam);
sex=s;}
stud::~stud()                      //对析构函数的定义
{}
void stud::display()               //对成员函数display的定义
{cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
void main()
{
 stud stud1(10010,"Wang_li",'f'),stud2(10011,"Zhang_fun",'m');
 stud1.display();              //输出学生1的数据
    stud2.display();              //输出学生2的数据
}

 

13、p355

#include <iostream.h>
class stud                        //声明基类
{protected:                       //基类保护成员
int num;
char name[10];
char sex;
public:                             //基类公用成员
 void display()                  
 {cout<<"num:"<<num<<endl;
  cout<<"name:"<<name<<endl;
  cout<<"sex:"<<sex<<endl;}
};

class student:public stud       //声明一个公用派生类
{
private:
 int age;
 char addr[30];
public:
 void show()
 {cout<<"num:"<<num<<endl; //引用基类的保护成员,合法。
     cout<<"name:"<<name<<endl; //引用基类的保护成员,合法。
     cout<<"sex:"<<sex<<endl; //引用基类的保护成员,合法。
     cout<<"age:"<<age<<endl; //引用派生类的私有成员,合法。
     cout<<"address:"<<addr<<endl;} //引用派生类的私有成员,合法。
 };
 void main()
 {student a;                       //a是派生类student类中的对象。
  a.show();                        //合法。show是派生类中的公用成员函数。
 
 }

 

 

【C++面向对象学习笔记】-基础知识

1.基本概念 面向对象程序设计是利用对象来进行程序设计。一个对象表示现实世界中一个独一无二的实体。例如,一名学生、一张桌子、一个圆等都可以看作对象。一个对象具有唯一的身份、状态和行为。一个对象的状态...
  • Kevin_zhai
  • Kevin_zhai
  • 2015年09月08日 16:58
  • 3507

好书整理系列之-设计模式:可复用面向对象软件的基础 5

第5章行为模式行为模式涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻划了在运行时难以跟踪的复杂的控制流。它们将你的注意力从控制流转移到对象间的联系方...
  • coolstar
  • coolstar
  • 2001年08月16日 11:09
  • 1573

设计模式-可复用面向对象软件的基础 [读书笔记]

1.将软件与设计模式比拟为城市与建筑模式,那么在面向对象的解决方案里,我们将对象和接口看成墙壁和门窗,模式的核心在于提供了相关问题的解决方案。   在软件设计中可能会遇到很多类似的问题,在每次遇到类似...
  • AnnaLoad
  • AnnaLoad
  • 2016年04月17日 10:26
  • 1495

C++面向对象基础

  • 2013年07月19日 20:39
  • 1.66MB
  • 下载

c++面向对象基础二(struct详解)

  • 2012年01月09日 16:36
  • 520KB
  • 下载

我的C++指针面向对象基础

  • 2009年09月02日 22:52
  • 1.3MB
  • 下载

c++面向对象基础实验设计

  • 2009年12月20日 15:11
  • 162KB
  • 下载

C++面向对象教程,c++的基础教学

  • 2011年07月26日 21:17
  • 1.95MB
  • 下载

C++面向对象基础,以及一些常见面试 改错题。

1、带默认参数的构造函数. (实际中避免用) 会有歧义! class A{ public: A(int i=10, int j=11, int k=12); A(int ,...
  • gaotong2055
  • gaotong2055
  • 2012年11月03日 11:03
  • 1517

C++ 面向对象基础知识点

以前学的知识点,很容易忘,今天稍微整理一下 多态性(polymorphism) 多种形态。 继承(inheritance) 通过继承我们能够定义这样的类,它们对类型之间的关系建模,共享公共的东西,仅仅...
  • jiangxt211
  • jiangxt211
  • 2015年09月20日 23:11
  • 317
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++的面向对象基础
举报原因:
原因补充:

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