C++结构体和类介绍

来源:互联网 发布:天网塞班软件站 编辑:程序博客网 时间:2024/05/16 11:49

一、结构体

#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://声明为publicPerson(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



原创粉丝点击