C++结构体和类介绍

一、结构体

#include "stdafx.h"
#include <iostream>  
#include <string> 
using namespace std;  
struct test//定义一个名为test的结构体 
 {   int a;//定义结构体成员a 
     int b;//定义结构体成员b  
 };  
 void main()    {  
	 test pn1;//定义结构体变量pn1   
	 test pn2;//定义结构体变量pn2   
	 pn2.a=10;//通过成员操作符.给结构体变量pn2中的成员a赋值   
	 pn2.b=3;//通过成员操作符.给结构体变量pn2中的成员b赋值   
	 pn1=pn2;//把pn2中所有的成员值复制给具有相同结构的结构体变量pn1    
	 cout<<pn1.a<<"|"<<pn1.b<<endl;   
	 cout<<pn2.a<<"|"<<pn2.b<<endl;    
	 test *point;//定义结构指针     
	 point=&pn2;//指针指向结构体变量pn2的内存地址    
	 cout<<pn2.a<<"|"<<pn2.b<<endl;  
	 point->a=99;//通过结构指针修改结构体变量pn2成员a的值  
	 cout<<pn2.a<<"|"<<pn2.b<<endl;   
	 cout<<point->a<<"|"<<point->b<<endl;   
	 cin.get(); 
 } 


2.

#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
 
/*在c++中struct和类的区别在于struct不能有方法,所有成员是public的*/
struct Movie/*可以指定类型名也可以不指定*/
{
    //成员都是public的
    int ID;
    string Name;
} movie; //可以在声明struct的时候声明一个struct实例,这个有啥意思呢?

int main(){
    //movie变量在Movie结构声明处定义了
    movie.ID = 100;
    movie.Name = "Flimmer";
 
    cout<<"movie.ID = "<<movie.ID<<endl;
    cout<<"movie.Name = "<<movie.Name<<endl;
 
    //声明一个变量m,无须为赋初值就可以使用它了
    Movie m;
    m.ID = 101;
    m.Name = "Carlblout";
    cout<<"m.ID="<<m.ID<<endl;
    cout<<"m.Name="<<m.Name<<endl;
 
    //声明结构的指针
    Movie * mp;//定义指针mp,并指向m变量
    mp = &m;
    //在指针中调用成员时要用->符号,mp->ID等价于(*mp).ID
    cout<<"mp->ID = "<<mp->ID<<endl;
    cout<<"mp->Name = "<<mp->Name<<endl;
 
}

待更。。。


二、类的介绍

1.private 成员main函数不能直接访问

2.构造函数对成员参数初始化

// 类.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;


class dates
{
private:
	int month;
	int year;
	int date;
	char*m_string;
	int length;
public:
	dates(const char*newstring="")
	{
		length=strlen(newstring)+1;
		m_string=new char[length];//分配内存
		strncpy(m_string,newstring,length);
		m_string[length-1]='\0';

	}
	~dates()
	{
		delete[] m_string;
		m_string=0;
	}

	char*get_string()//成员函数
	{
		return m_string;
	}
	int get_length()//成员函数
	{
		return length;
	}

//*************************************//
	int get_value()//cout
	{
		return month;
	};
	void set_value(int value)//cin
	{
		this->month=value;
	}

};
int _tmain(int argc, _TCHAR* argv[])
{
	//dates Date;
	//Date.year=2017;
	//Date.month=06;
	//Date.date=23;
	//cout<<Date.year<</*" "<<Date.month<<*/" "<<Date.date<<endl;
	//Date.set_value(2017);
	//cout<<"date_Num:"<<Date.get_value()<<endl;
	dates name("china japan");
	cout<<"m_string:"<<name.get_string()<<endl<<"m_string length:"<<
		name.get_length()<<endl;

	cin.get();
	return 0;
}

public成员函数也可以放在类外执行,前提要在public下声明;

3.
class Person
{
public://声明为public
	Person(string Client_name, string Client_address)
	{
		name = Client_name;
		address = Client_address;
	};//构造函数定义内部变量
	Person();//构造函数的重载
	string name;
	string address;//内部变量

	void Show_info()
	{
		cout << name << "'s" << " address is " << address << endl;
	}//类内定义函数

	string& const getname()
	{
		return name;
	}
	string& const getaddress()
	{
		return address;
	}//返回姓名地址的函数,只可访问,不可修改
};
int main(int argc, char **argv)
{
	Person Client1("Mr.right", "your heart");//实例化
	Client1.Show_info();//调用其中的显示信息函数
	return 0;
}
class test{
public:
	void print(int c)
	{
		s = c;
		cout << "整形:" <<s<< endl;
	}
	void print(char);

private:
	int s;
	char ss;
};
void test:: print(char c)
{
	ss = c;
	cout << "字符型:"<<ss << endl;
}
int main()
{
	test t;
	t.print(1);
	t.print('a');
	return 0;
}



类1.http://blog.csdn.net/zuheyawen/article/details/7324340



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值