`

C语言类继承小问题

    博客分类:
  • C
c 
阅读更多
#include<iostream> 
using namespace std;
class Student{
public:
	int num; 
	char* name; 
	float score; 
	Student(int num,char* name,float score):num(num),name(name),score(score){}
	void display()
	{
		cout<<"num:"<<num<<"name:"<<name<<"score:"<<score<<endl; //private:
	}
	
}; 

class Graduate:public Student{ 
public: 
	Graduate(int num,char* name,float score,float pay):Student(num, name, score), pay(pay){} //特别注意
	void display()
	{
		cout<<"num:"<<num<<"name:"<<name<<"score:"<<score<<"score:"<<score<<endl;
	}
private: 
	float pay; 
}; 

int main() 
{
	Student stud1(1001,"Li",87.5); 
	Graduate grad1(2001,"Wang",98.5,563.5); 
	Student *pt=&stud1; 
	pt->display(); 
	grad1.display(); 
	return 0; 
} 

 

#include<iostream> 
using namespace std; 
#include<string.h> 
class employee 
{ 
protected: 
 char number[50]; 
 char name[30]; 
 char sexity[10]; 
 char position[30]; 
 double wage; 
 class Date 
 { 
 private: 
 static int year; 
 static int month; 
 static int day; 
 public: 
 Date() {} 
 static void SetYear(int _year) 
 { 
 year= _year; 
 } 
 static void SetMonth(int _month) 
 { 
 month = _month; 
 } 
 static void SetDay(int _day) 
 { 
 day = _day; 
 } 
 static int GetYear() 
 { 
 return year; 
 } 
 static int GetMonth() 
 { 
 return month; 
 } 
 static int GetDay() 
 { 
 return day; 
 } 
 }; 
public: 
 employee(char* number,char* name,char* sexity,char* position,int year,int month,int day) 
 { 
 strcpy(this->number,number); 
 strcpy(this->name,name); 
 strcpy(this->sexity,sexity); 
 strcpy(this->position,position); 
 Date::SetYear(year); 
 Date::SetMonth(month); 
 Date::SetDay(day); 
 } 
 employee(char* number="0",char* name="jiangwei",char* sexity="male",char* position="employee",int year=1994,int month=7,int day=28,double wage=0) 
 { 
 //number = new char[x]; ; 
 strcpy(this->number,number); 
 strcpy(this->name,name); 
 strcpy(this->sexity,sexity); 
 strcpy(this->position,position); 
 Date::SetYear(year); 
 Date::SetMonth(month); 
 Date::SetDay(day); 
 } 
}; 
int employee::Date::year = 0; 
int employee::Date::month = 0; 
int employee::Date::day = 0; 
class technician : public employee 
{ 
protected: 
 double worktime; 
public: 
 technician(char* number,char* name,char* sexity,char* position,double worktime,int year,int month,int day) 
 { 
 this->worktime=worktime; 
 } 
 void display() 
 { 
 wage=25*worktime; 
 cout<<"wage:"<<wage<<endl; 
 } 
}; 
void main() 
{ 
 technician p1("123456","weng","male","director",8,1994,7,28); 
 p1.display(); 
}  

 

#include<stdio.h>
#include<string.h>
int main()
{
int t3[4]={'0',0,'\0'};
printf("%d\n",sizeof(t3));//16
printf("%d\n",strlen((char*)t3));//1
}

 

分享到:
评论

相关推荐

    c语言实现继承与多态

    在C语言中,继承可以通过结构体嵌套或组合实现,新类包含父类的结构体,并可以扩展或覆盖父类的方法。为了实现多态,即相同的消息可以由不同对象响应,可以使用函数指针或回调函数。这些函数指针可以关联到特定的...

    C语言实现对象编程之继承代码.rar

    在C语言中实现面向对象编程(Object-Oriented Programming,OOP)是一种挑战,因为C语言本身并不直接支持面向对象的特性,如类、继承、封装和多态。但是,通过巧妙地使用结构体和函数指针,可以模拟出类似面向对象的...

    用C语言实现继承的研究.pdf

    然而,C语言作为一种过程式编程语言,并不直接支持面向对象编程的三大特性,尤其是类和继承的概念。但是,C语言的强大之处在于它的灵活性,允许程序员通过特定的编程技术模拟面向对象的特性,这使得C语言即使在面向...

    使用C语言实现封装,继承,多态等面向对象的特性

    使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,...

    C语言结构体的“继承”

    在C语言中,虽然没有像面向对象编程语言如C++那样的类继承机制,但可以通过巧妙地设计结构体来实现一种类似的功能。这种机制通常被称为结构体的“继承”,实际上是通过在一个结构体中包含另一个结构体作为其成员来...

    C语言也能面向对象(四)——继承

    在C语言中,我们不能直接声明类或实现继承,但可以通过结构体和函数指针来模拟这个过程。 首先,`animal.c`、`animal.h`文件可能定义了一个基本的动物类。在`animal.h`中,我们可以看到一个包含动物属性和行为的...

    C++ API文档 C++是C语言的继承

    C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于...

    C语言实现类

    虽然C语言本身不支持类的继承,但可以通过模拟的方式来实现继承的概念。这通常涉及到使用结构体和指针来维护父类和子类的关系。 ```c // Base.h typedef struct _Base { void (*DisplayInfo)(struct _Base *); ...

    C语言程序设计 继承性和派生类PPT课件.pptx

    本资源为C语言程序设计的PPT课件,提供了详细的继承机制和派生类的知识点,包括继承机制的基本概念、单继承和多继承、派生类的继承方式、派生类的定义格式、基类与派生类的关系、基类成员在派生类中的访问权限等内容...

    C语言程序设计继承与派生PPT课件.pptx

    本PPT课件主要讲解了C语言程序设计中的继承与派生概念,详细介绍了继承的目的、继承方式、类成员的访问控制等内容。 继承的目的: 继承的主要目的在于实现代码重用,以便减少代码冗余提高开发效率。通过继承,...

    c语言问题及答案

    C++则是一种面向对象的语言,它扩展了C语言,引入了类、对象和继承等概念,更适合处理复杂的问题和大型项目。C++是C的超集,但C++的代码通常比C的执行效率稍低。 第五个问题讨论了C++中的虚函数。在给定的类定义中...

    C语言学习路线图:(阶段六) C语言必须知道的300个问题

    13. **面向对象编程的C++基础**:虽然C语言本身不支持面向对象,但了解C++的基础知识,如类、对象、继承、多态,可以帮助理解C++的C语言扩展。 14. **编程规范**:遵循良好的编程风格,如命名约定、注释规范、代码...

    C语言程序设计第七章继承与派生PPT课件.pptx

    在C语言程序设计中,继承是通过使用类继承机制来实现的。继承的目的是实现代码重用。在继承的过程中,基类(或父类)是被继承的已有类,而派生类是新的类,它是基于基类构建的。基类的成员可以被派生类继承和使用,...

    用C语言模拟了 c++ 封装、继承、多态三大特性。

    以下将详细介绍如何用C语言模拟C++的封装、继承和多态。 1. 封装: C++中的封装是通过类(class)来实现的,它将数据和操作数据的方法绑定在一起,形成一个独立的单元。在C语言中,我们可以通过结构体(struct)来...

    c语言五子棋小游戏课程设计报告

    【知识点详解】 1. **C语言编程基础**:五子棋小游戏是用C语言编写的,这涉及到C语言的...以上就是五子棋小游戏课程设计中的关键知识点,涵盖了C语言编程、面向对象设计、类与对象的使用,以及游戏逻辑算法的实现。

    c语言状态机资料-unlocked_面向对象分析_行为继承_状态机_

    资料可能包含如何将问题领域中的实体和行为映射到对象和类的具体步骤,以及如何使用继承来实现状态机的复用和扩展。 行为继承是面向对象编程中的一个关键特性,它允许子类继承父类的行为并在此基础上添加或修改。在...

    C语言:多态(单继承实现)

    在这个“C语言:多态(单继承实现)”的案例中,我们将探讨如何利用C语言来实现类似于C++中的单继承多态特性。 首先,让我们了解什么是多态。在面向对象编程中,多态是指一个接口可以有多种不同的行为或表现形式。这...

    cpp-9cc一个很小的C语言编译器是8cc编译器的继承者

    9cc作为8cc的继承者,继承了其小巧和易于理解的特点,并在此基础上进行了优化和扩展。9cc的出现,不仅是对8cc的一种改进,也是对编译器技术的持续探索。它的主要改进可能包括错误处理的增强、支持更多的C语言特性、...

    C语言程序设计继承与派生PPT学习教案.pptx

    如果原有的类无法满足新问题的解决,派生类可以作为一个解决方案。派生类可以覆盖基类的方法(多态性),添加新的数据成员,或者改变基类的行为,同时仍然保留基类的功能。 在C++中,派生类的声明如下: ```cpp ...

Global site tag (gtag.js) - Google Analytics