Aaand我再次回到我的第二个问题,我有点不确定是否应该发布所有单独的类,因为它看起来有点长。我确定解决方案非常小。 无论如何,我在多态性教程vid,我正在关注,一切正常,如果我按照它并把所有类放在“main.cpp”。但是当我试图用单独的类(见下文)做相同的程序时,我收到错误“
E:\ Codeblocks \ Poly \ main.cpp | 11 | error:初始化时无法将'Ninja '转换为'Enemy *'。“*。
我有点理解这个错误在说什么......我想......但是不知道我做错了什么,因为当Enemy和Ninja类没有分离时,同样的代码工作,但现在作为单独的类它不起作用。我想我在main.cpp中正确地包含了这些类。
main.cpp
#include <iostream>
#include "Enemy.h"
#include "Ninja.h"
#include "Monster.h"
int main()
{
Ninja n;
Monster m;
Enemy *enemy1=&n;
Enemy *enemy2=&m;
enemy1->setAttackPower(20);
enemy2->setAttackPower(50);
n.attack();
m.attack();
return 0;
}
Enemy.h
#ifndef ENEMY_H
#define ENEMY_H
class Enemy
{
public:
Enemy();
void setAttackPower(int a);
protected:
int attackPower;
private:
};
#endif // ENEMY_H
Enemy.cpp
#include "Enemy.h"
Enemy::Enemy()
{
//ctor
}
void Enemy::setAttackPower(int a)
{
attackPower=a;
};
Ninja.h
#ifndef NINJA_H
#define NINJA_H
class Ninja
{
public:
Ninja();
void attack();
protected:
private:
};
#endif // NINJA_H
Ninja.cpp
#include "Ninja.h"
#include <iostream>
Ninja::Ninja()
{
//ctor
}
void Ninja::attack(){
std::cout<<" I am a ninja. Ninja chop! -"<<attackPower<<"\n";}
答案 0 :(得分:2)
这是因为您的 Sub won()
Dim ws As Worksheet
Dim lastrow As Long
Set ws = ThisWorkbook.Sheets("Data imput")
lastrow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
For i = 3 To lastrow
If ws.Cells(i, 6) = "customer" Then
ws.Cells(i, 16) = 1
End If
Next i
MsgBox "done!"
End Sub
课程并非来自Ninja
课程。你必须像这样定义Ninja类:
Enemy
编辑:我添加了#include指令。没有它,编译器就不知道在哪里找到#include "Enemy.h"
class Ninja : public Enemy
{
public:
Ninja();
void attack();
protected:
private:
};
类声明。