C++ c++;结构
最后一条语句说明如何在C++ c++;结构,c++,C++,最后一条语句说明如何在EyeCandyCharacter类的构造函数中使用健康计算函数对象 我的问题是,EyeCandyCharacter类的构造函数需要一些函数,该函数采用与const GameCharacter&兼容的参数,并返回可转换为int的内容 这是否由struct HealthCalculator中定义的operator()支持/实现?我不太明白这个重载运算符的含义 我这里的另一个问题是,派生类构造函数中的初始化器列表通常只初始化其自身的数据成员(尽管我知道派生类的基部分也是隐式初始
EyeCandyCharacter
类的构造函数中使用健康计算函数对象
我的问题是,EyeCandyCharacter
类的构造函数需要一些函数,该函数采用与const GameCharacter&
兼容的参数,并返回可转换为int
的内容
这是否由struct HealthCalculator
中定义的operator()
支持/实现?我不太明白这个重载运算符的含义
我这里的另一个问题是,派生类构造函数中的初始化器列表通常只初始化其自身的数据成员(尽管我知道派生类的基部分也是隐式初始化的)。为什么基类
GameCharacter
会出现在派生类EyeCandyCharacter
的初始值设定项中?对于第二个问题:
我这里的另一个问题是,派生类构造函数中的初始化器列表通常只初始化其自身的数据成员(尽管我知道派生类的基部分也是隐式初始化的)为什么基类GameCharacter出现在派生类EyeCandyCharacter的初始值设定项中?
否,如果您的基类没有定义默认构造函数,而是定义了其他构造函数,则必须调用基类构造函数来初始化基类成员。因为在这种情况下,compile不会为您生成默认构造函数。换句话说,
派生类的基部分不是总是隐式初始化的
关于第二个问题:
我这里的另一个问题是,派生类构造函数中的初始化器列表通常只初始化其自身的数据成员(尽管我知道派生类的基部分也是隐式初始化的)为什么基类GameCharacter出现在派生类EyeCandyCharacter的初始值设定项中?
否,如果您的基类没有定义默认构造函数,而是定义了其他构造函数,则必须调用基类构造函数来初始化基类成员。因为在这种情况下,compile不会为您生成默认构造函数。换句话说,
派生类的基部分不是总是隐式初始化的
在你的第一个问题中:
我的问题是,EyeCandyCharacter类的构造函数需要
采用与常量兼容的参数的函数
GameCharacter&并返回可转换为整数的内容。。。是
此操作由struct中定义的运算符()支持/实现
健康计算器
是的,它是受支持的。你必须知道/记住,HealthCalculator
是一个健康的计算器。它实现了操作符()
,以“模拟”调用传统函数的语法。它的操作符()
接受一个常量GameCharacter&
并返回一个int
,它与EyeCandyCharacter
(以及随后的GameCharacter
)所需的内容兼容
在你的第二个问题中:
为什么基类游戏角色出现在的初始值设定项中
派生类EyeCandyCharacter
它通过调用GameCharacter
的构造函数来初始化EyeCandyCharacter
的基类,该基类是GameCharacter
。不这样做会使EyeCandyCharacter
的构造函数调用GameCharacter
的默认构造函数,该构造函数未定义,因此将导致错误
作为旁注,您现在可以在C++11中直接使用std::function
,它的功能与std::tr1::function
大致相同 在你的第一个问题中:
我的问题是,EyeCandyCharacter类的构造函数需要
采用与常量兼容的参数的函数
GameCharacter&并返回可转换为整数的内容。。。是
此操作由struct中定义的运算符()支持/实现
健康计算器
是的,它是受支持的。你必须知道/记住,HealthCalculator
是一个健康的计算器。它实现了操作符()
,以“模拟”调用传统函数的语法。它的操作符()
接受一个常量GameCharacter&
并返回一个int
,它与EyeCandyCharacter
(以及随后的GameCharacter
)所需的内容兼容
在你的第二个问题中:
为什么基类游戏角色出现在的初始值设定项中
派生类EyeCandyCharacter
它通过调用GameCharacter
的构造函数来初始化EyeCandyCharacter
的基类,该基类是GameCharacter
。不这样做会使EyeCandyCharacter
的构造函数调用GameCharacter
的默认构造函数,该构造函数未定义,因此将导致