c++ cdi+示例
C ++中的本地类 (Local Class in C++)
In C++, generally a class is declared outside of the main() function, which is global for the program and all functions can access that class i.e. the scope of such class is global.
在C ++中,通常在main()函数外部声明一个类,该类对于程序是全局的,并且所有函数都可以访问该类,即此类的范围是全局的。
A local class is declared inside any function (including main() i.e. we can also declare a class within the main() function) and the scope of local class is local to that function only i.e. a local class is accessible within the same function only in which class is declared.
本地类在任何函数内声明(包括main(),即我们也可以在main()函数内声明一个类),并且本地类的范围仅对该函数本地,即本地类只能在同一函数内访问在哪个类中声明。
Example:
例:
Here, we are declaring and defining two classes "Test1" and "Test2", "Test1" is declared inside a user-defined function named testFunction() and "Test2" is declares inside the main() function.
在这里,我们声明并定义了两个类“ Test1”和“ Test2” ,在一个名为testFunction()的用户定义函数中声明了“ Test1”,在main()函数中声明了“ Test2” 。
Since classes "Test1" and "Test2" are declared within the functions, thus, their scope will be local to those functions. Hence, "Test1" and "Test2" are local classes in C++.
由于在函数中声明了“ Test1”和“ Test2”类,因此它们的作用域对于这些函数而言是局部的。 因此, “ Test1”和“ Test2”是C ++中的本地类 。
Program:
程序:
#include <iostream>
using namespace std;
//A user defined function
void testFunction(void)
{
//declaring a local class
//which is accessible within this function only
class Test1
{
private:
int num;
public:
void setValue(int n)
{
num = n;
}
int getValue(void)
{
return num;
}
};
//any message of the function
cout<<"Inside testFunction..."<<endl;
//creating class's object
Test1 T1;
T1.setValue(100);
cout<<"Value of Test1's num: "<<T1.getValue()<<endl;
}
//Main function
int main()
{
//declaring a local class
//which is accessible within this function only
class Test2
{
private:
int num;
public:
void setValue(int n)
{
num = n;
}
int getValue(void)
{
return num;
}
};
//calling testFunction
cout<<"Calling testFunction..."<<endl;
testFunction();
//any message of the function
cout<<"Inside main()..."<<endl;
//creating class's object
Test2 T2;
T2.setValue(200);
cout<<"Value of Test2's num: "<<T2.getValue()<<endl;
return 0;
}
Output
输出量
Calling testFunction...
Inside testFunction...
Value of Test1's num: 100
Inside main()...
Value of Test2's num: 200
翻译自: https://www.includehelp.com/cpp-programs/local-class-with-example.aspx
c++ cdi+示例