一、结构体
#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