Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C /C++で参照とポインタを使用する場合


参照変数

参照変数は、既存の変数の別名です。別の変数を参照するように変更することはできず、宣言時に初期化する必要があります。 NULLにすることはできません。演算子「&」は、参照変数を宣言するために使用されます。

参照変数の構文は次のとおりです。

datatype variable_name; // variable declaration
datatype& refer_var = variable_name; // reference variable

ここで

データ型 − int、char、floatなどの変数のデータ型

変数名 −これはユーザーが指定した変数の名前です。

refer_var −参照変数の名前。

以下は参照変数の例です。

#include <iostream>
using namespace std;
int main() {
   int a = 8;
   int& b = a;
   cout << "The variable a: " << a;
   cout << "\nThe reference variable r: " << b;
   return 0;
}

出力

The variable a: 8
The reference variable r: 8

ポインタ

基本的に、ポインタは別の変数のアドレスを格納する変数です。変数にメモリを割り当てるとき、ポインタは変数のアドレスを指します。

ポインタの構文は次のとおりです。

datatype *variable_name;

ここで

データ型 − int、char、floatなどの変数のデータ型

gvariable_name −これはユーザーが指定した変数の名前です。

以下はポインタの例です。

#include <stdio.h>
int main () {
   int a = 8;
   int *ptr;
   ptr = &a;
   printf("Value of variable: %d\n", a);
   printf("Address of variable: %d\n", ptr);
   printf("Value pointer variable: %d\n",*ptr);
   return 0;
}

出力

Value of variable: 8
Address of variable: -201313340
Value pointer variable: 8

  1. C ++で仮想デストラクタを使用するのはいつですか?

    効果的なC++のScottMeyersによると- クラスに仮想関数がある場合は、仮想デストラクタが必要です。基本クラスとして設計されていないクラス、または多態的に使用されるように設計されていないクラスは、仮想デストラクタを宣言しないでください。 したがって、ポリモーフィック基本クラスで仮想デストラクタを宣言する必要があります。これは、派生コンストラクターを使用して基本クラスのオブジェクトを作成する場合- Base *b = new Derived(); // use b delete b; Baseのデストラクタが仮想でない場合、この場合、deletebの動作は未定義です。デストラクタへ

  2. 前方宣言C/C ++はいつ使用できますか?

    前方宣言により、宣言に続くコードは、Personという名前のクラスがあることを認識できます。これは、これらの名前が使用されていることを確認すると、コンパイラーを満足させます。後でリンカはクラスの定義を見つけます。 例 Class Person; void myFunc(Person p1) {    // ... } Class Person {    // Class definition here }; したがって、この場合、コンパイラがmyFuncに遭遇すると、コードのどこかでこのクラスに遭遇することがわかります。これは、クラスを使用するコ