03.C ++クラスとオブジェクト

新機能、C ++の構造

C言語の構造が機能することはできません、変数の構造体の定義は次のとおりですstruct 结构体名结构体变量名

C ++では、構造体のメンバは、構造体の変数定義を使用することができる機能を有することができます:结构体名结构体变量名struct关键字可以不书写

実施例(book202.c)

/*
 * 程序名:book202.cpp,此程序用于演示C++结构体的新特征。
 * 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <string.h>

struct st_girl
{
  char name[50];     // 姓名
  int  age;          // 年龄
  int  height;       // 身高,单位:厘米cm
  char sc[30];       // 身材,火辣;普通;飞机场。
  char yz[30];       // 颜值,漂亮;一般;歪瓜裂枣。
  int  show();       // 声明结构体成员函数show,用于显示其它成员变量的值。
};

int main()
{
  st_girl stgirl;      // struct关键定可以不书写
  memset(&stgirl,0,sizeof(stgirl));
  strcpy(stgirl.name,"西施");
  stgirl.age=22;
  stgirl.height=168;
  strcpy(stgirl.sc,"火辣");
  strcpy(stgirl.yz,"漂亮");
  
  stgirl.show();  // 调用结构体的成员函数
}

int st_girl::show()   // 结构体st_girl成员函数的定义
{
  printf("name=%s,age=%d,height=%d,sc=%s,yz=%s\n",name,age,height,sc,yz);
}

業績

ここに画像を挿入説明

二、C ++クラスとオブジェクト

book202.cppの内容を変更、のテストをやってみましょう。

int st_girl::show()   // 结构体st_girl成员函数的定义

変更

int st_girl::show1()   // 结构体st_girl成员函数的定义

変更してコンパイルします。

ここに画像を挿入説明

上図、ボックス内のテキスト「クラスst_girlで宣言されていませんか」?私は明らかにクラスになるためにどのような構造によって書かれましたか?

C ++クラス(クラス)の構造を調べ、クラスのメンバ変数と関数であることができる、クラスによって変数の定義は、オブジェクトと呼ばれる特定のアドレスを有しています。

実施例(book205.cpp)

/*
 * 程序名:book205.cpp,此程序演示用类的基本概念。
 * 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <string.h>

class CGirl    // 定义超女类
{
public:
  char m_name[50];  // 姓名
  int  m_age;       // 年龄
  int  m_height;    // 身高,单位:厘米cm
  char m_sc[30];    // 身材,火辣;普通;飞机场。
  char m_yz[30];    // 颜值,漂亮;一般;歪瓜裂枣。
  int  Show();      // 申明显示超女基本信息的成员函数
};

int main()
{
  CGirl Girl;   // 实例化一个Girl对象

  // 访问对象的成员变量,进行赋值
  strcpy(Girl.m_name,"武则天");
  Girl.m_age=28;      
  Girl.m_height=168;
  strcpy(Girl.m_sc,"火辣");
  strcpy(Girl.m_yz,"漂亮");

  Girl.Show();   // 调用对象的成员函数
}

int CGirl::Show()  // 显示超女基本信息的成员函数体
{
  printf("姓名:%s,年龄:%d,身高:%d,身材:%s,颜值:%s。\n",m_name,m_age,m_height,m_sc,m_yz);
}

業績

ここに画像を挿入説明

book205.cppを説明します。

クラスは、 C ++のキーワードはただの構造のように、クラスを定義するために使用されsturct

国民は C ++のキーワードである、あなたはそれを無視し、その後、ライン上ので最初のコピーを説明します。

クラスのメンバ変数と同じ構造のメンバ変数が、また、データの種類と名前。

INT
CGirl ::ショー()メンバ関数は、関数は、このクラスのメンバであることを示す、クラス名と二つのコロンと関数で、クラスで定義され、文法クラスのメンバ関数の戻り値、パラメータおよび同じ一般的な機能。

C ++では、クラスのクラス定義が作成された変数と呼ばれる(またはインスタンス化)を使用してオブジェクトのメンバ変数は、クラスの属性(プロパティ)、クラスのメンバ関数(メソッド)と呼ばれるメソッドを呼び出しました。

同じスコープのクラスの範囲及びライフサイクルのオブジェクトのメンバ変数とメンバ関数とのライフサイクル。

第三に、オブジェクトの配列

あなただけの構造体の同じ配列として、クラスオブジェクトの配列を作成することができます。

  CGirl Girl[10];    // 定义10个超女类数组
  strcpy(Girl[0].m_name,"杨玉环");
  Girl[0].m_age=18;
  ......
  strcpy(Girl[9].m_name,"陈圆圆");
  Girl[9].m_age=21;

第四に、オブジェクトへのポインタ

クラスは、オブジェクトがメモリ変数であり、メモリアドレスが存在するカスタム・データ・タイプは、もちろん、また、クラスへのポインタを有しているポインタと同じ構造。次のとおりです。

CGirl queen;
CGirl *pst=&queen;

メンバーは、クラスポインタ、同じ構造を書き込む方法でオブジェクトにアクセスすることができます。

(*pointer).memberName

または:

pointer->memberName

上記の二つの方法に相当し、我々は通常の背後にあるので、より直感的に、書き込み。

第五に、パラメータの関数としてオブジェクト

構造と同様に、オブジェクトが関数にパラメータとして渡すことができ、最良の方法は、オブジェクトのアドレスを渡すことです。

第六には、オブジェクトのメモリの初期化とサイズを取ります

それは私たちの過去の経験、使用前に初期化する変数の定義によれば、Cでの基本データ型が直接0を割り当てることができ、memsetの機能を使用して初期化文字列や構造、オブジェクトのそのクラス?オブジェクトを初期化するのmemsetは、後ほど紹介する具体的なアプローチを使用することはできません。

オブジェクトがメモリ集約型のサイズを取得するためにはsizeof演算子を使用することができ、しかし、実際の開発では、プログラマはオブジェクトのメモリサイズを気にしないでください。

VII概要

この段階で、全く同様の方法を用いて、構造のクラスメンバ関数、キーワードと構文の異なる定義、など。

あなたは、私たちは、シーンの実際の開発は、教科書に移動した場合、私は、クラスの基本を紹介する最も簡単な方法を使用しているため、クラスはまったく使用しないようだ、何のクラスが健在ならないとことを、これは必ずしもではないかもしれないと思うかもしれません私たちは、関数の本体のメンバーを含めないクラス宣言のいくつかのページは、ありますが、実際の開発では、コードのいくつかの種類が非常に長い、受け入れることはできません。

私たちは、ステップバイステップの学習を立派な態度を維持したいと考えています。

八、OOP(オブジェクト指向プログラミング、OOP)

クラスは、一般的な概念であり、C ++やJava、C# 、PHP
、他の多くのプログラミング言語がサポートクラスです、あなたはクラスでオブジェクトを作成することができます。C ++やJava、C#、ので PHP
の言語で書かれた使用プログラムは、オブジェクト指向プログラミングとして知られているように、他の言語は、クラスとオブジェクトをサポートし、これらの言語は、オブジェクト指向プログラミング言語として知られています。C言語は、プロセス指向のプログラミング言語として知られているクラスとオブジェクトの概念をサポートしていないので、少しはいじめ。

C言語では、我々は再利用またはコード機能パッケージとしての機能を有するであろう、C ++、多層パッケージ内のクラス(クラス)であり、この層のパッケージの型(クラス)を過小評価していませんそれは多くの機能を持って、大幅に開発プログラマの効率を向上させます。

オブジェクト指向プログラミングは、プログラム実行の効率で任意の利点を持っていない、その主な目的は、迅速なプログラミングのアイデアをコーミング、コードプログラマの組織と管理を容易にすることです。

ナイン、宿題

1)使用量のパラメータとしてオブジェクトの配列、オブジェクト・ポインタ、オブジェクトの機能をテストする、プログラム。

2)参照book205.cppプログラムに、次のような情報スーパー女性、スーパー女性の裁判官のレベル、基準のレベルに基づいてメンバ関数レベル、レベルの機能を追加します。

側室:(1)年齢18~25歳;(2)高さ165〜178センチメートル;(3)ホット体;(4)美しい色の値。

女性:(1)年齢18~30歳;(2)高さ160〜165センチメートル;(3)、又は一般ホット体;(4)一般的な色の値。

疲労:(1)年齢35~40歳;(2)高さ155〜165センチメートル;(3)一般的な本体又は空港、一般に(4)のカラー値。

テン、著作権

C言語Technology Networkのオリジナルの記事、論文、著者と元にソースリンクを明記してくださいを再現。
出典:C言語テクノロジーネットワーク(www.freecplus.net)
著者:倫理コード農業

記事の誤字、またはコンテンツのエラー、またはその他の提案やコメントは、正しい私にメッセージをお願いした場合、どうもありがとうございました!

公開された53元の記事 ウォンの賞賛6 ビュー1811

おすすめ

転載: blog.csdn.net/m0_45133894/article/details/104667697
おすすめ