小编Adr*_*han的帖子

构造函数c ++中的奇怪函数调用

我正在编写一个enigma机器,并且在为我的机器类制作构造函数时遇到问题.尽管必须在构造函数的参数中提供一个插板,但似乎正在调用一个插件板的构造函数.这是错误

Machine.cpp: In constructor ‘Machine::Machine(std::list<Rotor>, Plugboard)’:
Machine.cpp:6:48: error: no matching function for call to ‘Plugboard::Plugboard()’
 Machine::Machine(list<Rotor> rots, Plugboard pb) {
Run Code Online (Sandbox Code Playgroud)

Machine.cpp:

#include "Machine.h"

using namespace std;


Machine::Machine(list<Rotor> rots, Plugboard pb) {

  plugboard = pb;
  rotors = rots;

}

//give c's alphabet index
int Machine::getPosition(char c) {
  if (c >= 'A' && c <= 'Z') {
    return c - 'A';
  }
  else  {
    cout <<  "not an accepted character";
    return -1;
  }
}

//give letter at index i in alphabet
char …
Run Code Online (Sandbox Code Playgroud)

c++ constructor

0
推荐指数
1
解决办法
122
查看次数

使用向量中每个对象的函数

我编码一个enigma机器并且在我的向量中使用元素时遇到问题,只将分段错误作为错误.我需要在单个字符的向量中使用每个转子中的一个函数,在迭代器移动时转换字符,一次向前遍历列表,一次向后转换.我已经注释掉其他转换以隔离问题.

Machine.cpp

#include "Machine.h"

using namespace std;

Machine::Machine(const vector<Rotor>& rots, const Plugboard & pb)
    : rotors(rots), plugboard(pb) {}

// give c's alphabet index
int Machine::getPosition(char c) {
    if (c >= 'A' && c <= 'Z') {
        return c - 'A';
    } else {
        cout << "not an accepted character";
        return -1;
    }
}

// give letter at index i in alphabet
char Machine::atPosition(int i) {
    assert(i >= 0 && i <= 25);
    return "ABCDEFGHIJKLMNOPQRSTUVWXYZ" [i];
}

char Machine::encode(char c) { …
Run Code Online (Sandbox Code Playgroud)

c++ iterator vector object

0
推荐指数
1
解决办法
106
查看次数

标签 统计

c++ ×2

constructor ×1

iterator ×1

object ×1

vector ×1