代码如下:
#!/usr/bin/python 
#filename: pyclass.py 
 
class Member: 
 def __init__(self, name, age): 
 self.name = name 
 self.age = age 
 print 'Member init:%s' % self.name 
 def tell(self): 
 print 'Name:%s,Age:%d' % (self.name, self.age), 
 
class Student(Member): 
 def __init__(self, name, age, marks): 
 Member.__init__(self, name, age) 
 self.marks = marks 
 print 'Student init:%s' % self.name 
 def tell(self): 
 Member.tell(self) 
 print 'Marks:%d' % self.marks 
 
class Teacher(Member): 
 def __init__(self, name, age, salary): 
 Member.__init__(self, name, age) 
 self.salary = salary 
 print 'Teacher init:%s' % self.name 
 def tell(self): 
 Member.tell(self) 
 print 'Salary:%d' % self.salary 
 
s = Student('Tom', 20, 80) 
t = Teacher('Mrs.Huang', 30, 50000) 
 
members = [s, t] 
for mem in members: 
 mem.tell() 
运行效果:
代码如下:
[root@localhost hhl]# python pyclass.py 
Member init:Tom 
Student init:Tom 
Member init:Mrs.Huang 
Teacher init:Mrs.Huang 
Name:Tom,Age:20 Marks:80 
Name:Mrs.Huang,Age:30 Salary:50000 
我们同样编写同样效果的C++例子:
代码如下:
//filename: class.cpp 
#include 
#include 
using namespace std; 
 
class Member 
{ 
public: 
 Member(char *n, int a); 
 void tell(); 
private: 
 char name[10]; 
 int age; 
}; 
 
Member::Member(char *n, int a) 
{ 
 memcpy(name, n, sizeof(name)); 
 age = a; 
 cout<<"Member init:"<
 
void Member::tell() 
{ 
 cout<<"Name:"<
class Student:public Member 
{ 
public: 
 Student(char *n, int a, int m); 
 void tell_s(); 
private: 
 int marks; 
}; 
 
Student::Student(char *n, int a, int m):Member(n, a) 
{ 
 marks = m; 
 cout<<"Student init:"<
 
void Student::tell_s() 
{ 
 Member::tell(); 
 cout<<"Marks:"<
 
class Teacher:public Member 
{ 
public: 
 Teacher(char *n, int a, int s); 
 void tell_t(); 
private: 
 int salary; 
}; 
 
Teacher::Teacher(char *n, int a, int s):Member(n, a) 
{ 
 salary = s; 
 cout<<"Teacher init:"<
 
void Teacher::tell_t() 
{ 
 Member::tell(); 
 cout<<"Salary:"<
 
int main(void) 
{ 
 Student s("Tom", 20, 80); 
 Teacher t("Mrs.Huang", 30, 50000); 
 
 s.tell_s(); 
 t.tell_t(); 
 
 return 0; 
} 
运行效果:
代码如下:
[root@localhost hhl]# ./class 
Member init:Tom 
Student init:Tom 
Member init:Mrs.Huang 
Teacher init:Mrs.Huang 
Name:Tom,Age:20,Marks:80 
Name:Mrs.Huang,Age:30,Salary:50000 
这两者的运行效果是一样的,但是python更简洁些。。
下载本文