码迷,mamicode.com
首页 > 编程语言 > 详细

C 过渡 C++ 1

时间:2016-06-05 17:12:37      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:c 过渡 c++ 1


1,C++

GCC 编译C++兼容C代码

#include <stdio.h>
#include <string.h>

struct student
{
        int ID;
        char name[100];
};

int main()
{
        struct student st;
        st.ID = 10;
        strcpy(st.name,"tom");
        printf("%d,%s\n",st.ID,st.name);
        return  0;
}

编译运行
chunli@ubuntu:~/file$ g++ main.cpp && ./a.out
10,tom


C++ 结构体,构造函数,析构函数

chunli@ubuntu:~/file$ cat main.cpp 
#include <stdio.h>
#include <string.h>

struct student
{
	int ID;
	char name[100];
	void set_id(int id)	//C++中结构体支持函数了
	{
		ID = id;
	}

	void set_name(const char *name)
	{
		strcpy(this->name,name);
	}

	//构造函数            
	student(int ID,const char *name)		
	{
		this -> ID = ID;
		strcpy(this ->name,name);
		printf("结构体的构造函数\n");
	}
	//析构函数            
	~student()		
	{
		printf("结构体的析构函数\n");
	}

};

int main()
{
	student st(99,"忘情水");
	printf("%d,%s\n",st.ID,st.name);

	return  0;
}




chunli@ubuntu:~/file$ 
chunli@ubuntu:~/file$ g++ main.cpp && ./a.out
结构体的构造函数
99,忘情水
结构体的析构函数





C++结构体的指针

chunli@ubuntu:~/file$ cat main.cpp 
#include <stdio.h>
#include <string.h>

struct student
{
	int ID;
	char name[100];
	void set_id(int id)	//C++中结构体支持函数了
	{
		ID = id;
	}

	void set_name(const char *name)
	{
		strcpy(this->name,name);
	}

	//构造函数            
	student(int ID,const char *name)		
	{
		this -> ID = ID;
		strcpy(this ->name,name);
		printf("结构体的构造函数\n");
	}
	//析构函数            
	~student()		
	{
		printf("结构体的析构函数\n");
	}

};

int main()
{
	student *st = new student(99,"我是C++结构体指针");
	printf("%d,%s\n",st->ID,st->name);
	delete st;

	return  0;
}




chunli@ubuntu:~/file$ g++ main.cpp && ./a.out
结构体的构造函数
99,我是C++结构体指针
结构体的析构函数
chunli@ubuntu:~/file$







C++ 结构体 转类

chunli@ubuntu:~/file$ cat main.cpp 
#include <stdio.h>
#include <string.h>

class student
{
public:
	int ID;
	char name[100];
	void set_id(int id)	//C++中结构体支持函数了
	{
		ID = id;
	}

	void set_money(int money)
	{
		this->money = money;
	}
	int get_money()
	{
		return money;
	}
	void set_name(const char *name)
	{
		strcpy(this->name,name);
	}

	//构造函数            
	student(int ID,const char *name)		
	{
		this -> ID = ID;
		strcpy(this ->name,name);
		printf("结构体的构造函数\n");
	}
	//析构函数            
	~student()		
	{
		printf("结构体的析构函数\n");
	}

private:
	int money;//在外面是不允许直接访问的
};

int main()
{
	student *st = new student(99,"我是C++结构体指针");
	st->set_money(9999);
	int money = st->get_money();
	printf("ID  = %d,name = %s,money = %d\n",st->ID,st->name,money);
	delete st;

	return  0;
}




chunli@ubuntu:~/file$ g++ main.cpp && ./a.out
结构体的构造函数
ID  = 99,name = 我是C++结构体指针,money = 9999
结构体的析构函数
chunli@ubuntu:~/file$


C++ 类文件分开写

chunli@ubuntu:~/file$ vim main.cpp 
#include <stdio.h>
#include <string.h>
#include "student.h"
int main()
{
	student *st = new student(1,"Linus Torvalds");
	st->set_money(999999);
	printf("ID  = %d\n",st->ID);
	printf("name = %s\n",st->name);
	printf("money = %d\n",st->get_money());
	delete st;

	return  0;
}

chunli@ubuntu:~/file$ vim student.h 
#ifndef STUDENT_H
#define STUDENT_H
class student
{
public:
	int ID;
	char name[100];
	void set_id(int id);	//C++中结构体支持函数了
	void set_money(int money);
	int get_money();
	void set_name(const char *name);
	student(int ID,const char *name);		
	~student();		
private:
	int money;//在外面是不允许直接访问的
};
#endif //STUDENT_H
chunli@ubuntu:~/file$ 





chunli@ubuntu:~/file$ vim student.cpp 
#include <stdio.h>
#include <string.h>
#include "student.h"

void student::set_id(int id)	//C++中结构体支持函数了
{
	ID = id;
}

void student:: set_money(int money)
{
	this->money = money;
}
int student:: get_money()
{
	return money;
}
void student:: set_name(const char *name)
{
	strcpy(this->name,name);
}

//构造函数            
student::student(int ID,const char *name)		
{
	this -> ID = ID;
	strcpy(this ->name,name);
	printf("构造函数被调用\n");
}
//析构函数            
student::~student()		
{
	printf("析构函数被调用\n");
}


编译执行:
chunli@ubuntu:~/file$  g++ main.cpp student.cpp && ./a.out 
构造函数被调用
ID  = 1
name = Linus Torvalds
money = 999999
析构函数被调用




c++实现在主函数之前执行代码

#include <stdio.h>
class first
{
public: 
        first()//构造函数,与类名相同。
        {
                printf("myclass开始 \n");
        }
        ~first()//析构函数,与类名相同。
        {
                printf("myclass结束 \n");
        }
        
};

first haha;//定义一个类

int main()
{
        printf("main 开始 \n");
        printf("main 结束 \n");
        return  0;
}


chunli@ubuntu:~/class$ g++ main.cpp && ./a.out 
myclass开始 
main 开始 
main 结束 
myclass结束






本文出自 “魂斗罗” 博客,请务必保留此出处http://990487026.blog.51cto.com/10133282/1786271

C 过渡 C++ 1

标签:c 过渡 c++ 1

原文地址:http://990487026.blog.51cto.com/10133282/1786271

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!