C++ — 简单的程序分离类定义和主函数、实现栈的操作和创建Employee类
(2013-03-30 20:49:27)
标签:
成员变量it |
分类: C 编程 |
1、C++ —
简单的程序分离类定义和主函数
//cat.h
#ifndef CAT
#define CAT
#include
class Cat
{
public:
int GetAge();
void SetAge(int age);
void Meow();
//喵喵叫
protected:
int itsAge;
};
#endif
//cat.cpp
#include "cat.h"
int Cat::GetAge()
{
return itsAge;
}
void Cat::SetAge(int age)
{
itsAge=age;
}
void Cat::Meow()
{
cout <<"Meow.\n";
}
//cat.h
#include "cat.h"
void main()
{
Cat frisky;
frisky.SetAge(5);
frisky.Meow();
cout <<"frisky is a cat who is "
<<frisky.GetAge()
<<" years old.\n";
frisky.Meow();
}
2、C++ —
实现栈的操作(运用链表、数据操作先进后出)
//stack.h
#ifndef STACK
#define STACK
struct Node{//定义节点结构
int a;
Node* next;
};
class Stack{
public:
Stack();
~Stack();
void Put(int item);
int Get();
protected:
Node* head;//保护链表的头指针
};
#endif
//stack.cpp
#include "stack.h"
#include
#include
Stack::Stack():head(NULL){}
//之前设置头指针为空,此为构造函数,在类的对象创建时将被自动调用
void Stack::Put(int item){ //数据进入栈
Node* p = new Node; //新建一个节点内存
p->a = item; //给节点里面的数据域赋值为 item
p->next = head; //使指针head指向刚刚新建的节点的数据域里面,使之构成一个链表
head = p; //把指针 p 地址传给head,因为数据先进后出
}
Stack::~Stack(){ //析构函数,释放内存,归给还操作系统,下次再继续免费申请。。。
for(Node* p=head; p;){ //从头指针开始,将头指针地址赋值给p
Node* t = p; //再继续将p指针的地址给t
p=p->next; //p指针指向下一个结点
delete t; //不断的delete
}
}
int Stack::Get()
{
if(!head){ //从头指针开始出栈,否则错误
cerr <<"error access stack underflow.\n";
exit(1);
}
int result = head->a; //将栈里面的数据赋值给 result 变量
Node* p = head; //把head 指针地址给p指针
head = head->next; //head 指针移向下一个结点
delete p; //数据已经出栈后,就应该把该节点delete啦
return result; //返回该数据,用于数据的出栈啊
}
//main.cpp
#include
#include "stack.h"
void main()
{
}
3、C++ —
创建Employee类,成员函数ChangeName和Display
//employee.h
#ifndef EMPLOY
#define EMPLOY
class Name
{
public:
Name(char* n);
void Display();
void ChangeName(char* n);
protected:
char firstName[20];
char lastName[20];
};
class Employ
{
public:
Employ(char* n,char* a,char* c,char* s,char* z);
void ChangeName(char* n);
void Display();
protected:
Name name;
char addr[40];
char city[20];
char state[20];
char zip[10];
};
#endif
//employee.cpp
#include
#include "employee.h"
#include
Name::Name(char* n){
}
void Name::Display(){
}
void Name::ChangeName(char* n){
}
Employ::Employ(char* n,char* a,char* c,char* s,char* z)
:name(n)
{
}
void Employ::ChangeName(char* n){
}
void Employ::Display(){
}
//main.cpp
#include "employee.h"
void main()
{
Employ em("Mark Brooks","5 West
St.","Revere","CA","12290");
em.Display();
em.ChangeName("Richard Voss");
em.Display();
}