类允许您创建您自己的数据类型,该数据类型捆绑了该数据的数据和功能。类中的数据和函数称为成员。该类的成员通过使用。运算符(或-如果您通过指针访问成员)。
访问说明符允许你指定谁可以访问一个类的成员。公共成员可以直接访问任何人。只有类的其他成员才能访问私有成员。我们将覆盖保护的成员后,当我们得到继承。默认情况下,类的所有成员是私有的,结构的所有成员都是公开的。
封装是使所有的成员数据私有化的过程,所以无法直接访问。这有助于保护您的类不受误用。
构造函数是一种特殊类型的成员函数,允许你初始化你的类的对象。一个构造函数,不需要参数(或所有的默认参数)被称为默认构造函数。如果没有由用户提供的初始化值,则使用默认构造函数。您应该始终为您的类提供至少一个构造函数。
成员初始化列表允许您初始化成员变量在一个构造函数(而不是分配成员变量的值)。
在C++ 11,非静态成员的初始化可以直接指定成员变量的默认值,当他们宣布。
C++ 11之前,不应该调用其他构造函数构造函数(这将编译,但不会如你期望)。在C++ 11,构造函数可以调用其他构造函数(称为委托构造函数,或构造函数链)。
析构函数是另一种类型的功能的特殊成员,允许你的班后清理自己。任何一种释放或关闭例程可以执行从这里。
所有成员函数都有一个隐藏的*指针,这个指针指向被修改的类对象。大多数时候,你不需要直接访问这个指针。但如果你需要的话,你可以。
这是良好的编程风格来把你的类声明一个名称相同的头文件的类,并定义一个类的功能。同一名称的cpp文件的类。这也有助于避免循环依赖关系。
成员函数可以(也应该)如果他们不修改类的状态常量。const类对象只能调用const成员函数。
在类的所有对象中共享静态成员变量。虽然它们可以从一个类对象访问,但它们也可以直接通过范围解析操作符来访问。
类似的,静态成员函数是没有*指针的成员函数。他们只能访问静态成员变量。
朋友的功能是被视为类的成员函数的函数(因此可以直接访问一个类的私有数据)。朋友类是类的所有成员都被认为是朋友的函数。
最后,它可以创建一个匿名类对象,用于在表达式中进行评价,或传递或返回一个值。
问答时间
1A)写一个名为point2d。point2d应该包含两个double类型的成员变量:m_x,和m_y,都默认为0。提供一个构造函数和一个打印函数。
下面的程序应该运行:
一
二
三
四
五
六
七
八
九
十
十一
#包含iostream > <
国际main()
{
point2d第一;
point2d二(3,4);
print()第一;
二。print();
返回0;
}
这应该打印:
point2d(0,0);
point2d(3,4);
显示解决方案
1b)现在添加一个成员函数命名,另需point2d距离作为参数,并计算它们之间的距离。给定两个点(x1,y1),(x2,y2),它们之间的距离可以计算为sqrt((X1 X2)*(X1 X2)+(Y1,Y2)*(Y1,Y2))。在头cmath sqrt函数的生活。
下面的程序应该运行:
一
二
三
四
五
六
七
八
九
十
国际main()
{
point2d第一;
point2d二(3,4);
print()第一;
二。print();
std::cout <<“两点之间的距离:“<<第一。距(二)<< '\n';
返回0;
}
这应该打印:
point2d(0,0);
point2d(3,4);
两点间距离:5
显示解决方案
1c)改变功能距离从一个成员函数,非会员朋友的功能,需要两个点作为参数。也重新命名为“距离”。
下面的程序应该运行:
一
二
三
四
五
六
七
八
九
十
国际main()
{
point2d第一;
point2d二(3,4);
print()第一;
二。print();
std::cout <<“两点之间的距离:“<<距离(第一、二)<< '\n';
返回0;
}
访问说明符允许你指定谁可以访问一个类的成员。公共成员可以直接访问任何人。只有类的其他成员才能访问私有成员。我们将覆盖保护的成员后,当我们得到继承。默认情况下,类的所有成员是私有的,结构的所有成员都是公开的。
封装是使所有的成员数据私有化的过程,所以无法直接访问。这有助于保护您的类不受误用。
构造函数是一种特殊类型的成员函数,允许你初始化你的类的对象。一个构造函数,不需要参数(或所有的默认参数)被称为默认构造函数。如果没有由用户提供的初始化值,则使用默认构造函数。您应该始终为您的类提供至少一个构造函数。
成员初始化列表允许您初始化成员变量在一个构造函数(而不是分配成员变量的值)。
在C++ 11,非静态成员的初始化可以直接指定成员变量的默认值,当他们宣布。
C++ 11之前,不应该调用其他构造函数构造函数(这将编译,但不会如你期望)。在C++ 11,构造函数可以调用其他构造函数(称为委托构造函数,或构造函数链)。
析构函数是另一种类型的功能的特殊成员,允许你的班后清理自己。任何一种释放或关闭例程可以执行从这里。
所有成员函数都有一个隐藏的*指针,这个指针指向被修改的类对象。大多数时候,你不需要直接访问这个指针。但如果你需要的话,你可以。
这是良好的编程风格来把你的类声明一个名称相同的头文件的类,并定义一个类的功能。同一名称的cpp文件的类。这也有助于避免循环依赖关系。
成员函数可以(也应该)如果他们不修改类的状态常量。const类对象只能调用const成员函数。
在类的所有对象中共享静态成员变量。虽然它们可以从一个类对象访问,但它们也可以直接通过范围解析操作符来访问。
类似的,静态成员函数是没有*指针的成员函数。他们只能访问静态成员变量。
朋友的功能是被视为类的成员函数的函数(因此可以直接访问一个类的私有数据)。朋友类是类的所有成员都被认为是朋友的函数。
最后,它可以创建一个匿名类对象,用于在表达式中进行评价,或传递或返回一个值。
问答时间
1A)写一个名为point2d。point2d应该包含两个double类型的成员变量:m_x,和m_y,都默认为0。提供一个构造函数和一个打印函数。
下面的程序应该运行:
一
二
三
四
五
六
七
八
九
十
十一
#包含iostream > <
国际main()
{
point2d第一;
point2d二(3,4);
print()第一;
二。print();
返回0;
}
这应该打印:
point2d(0,0);
point2d(3,4);
显示解决方案
1b)现在添加一个成员函数命名,另需point2d距离作为参数,并计算它们之间的距离。给定两个点(x1,y1),(x2,y2),它们之间的距离可以计算为sqrt((X1 X2)*(X1 X2)+(Y1,Y2)*(Y1,Y2))。在头cmath sqrt函数的生活。
下面的程序应该运行:
一
二
三
四
五
六
七
八
九
十
国际main()
{
point2d第一;
point2d二(3,4);
print()第一;
二。print();
std::cout <<“两点之间的距离:“<<第一。距(二)<< '\n';
返回0;
}
这应该打印:
point2d(0,0);
point2d(3,4);
两点间距离:5
显示解决方案
1c)改变功能距离从一个成员函数,非会员朋友的功能,需要两个点作为参数。也重新命名为“距离”。
下面的程序应该运行:
一
二
三
四
五
六
七
八
九
十
国际main()
{
point2d第一;
point2d二(3,4);
print()第一;
二。print();
std::cout <<“两点之间的距离:“<<距离(第一、二)<< '\n';
返回0;
}