我正在尝试将我的c ++代码分成一个标头和一个cpp文件,但是解释器显示了一些错误。
这是我的代码:
Password.h:
var dailyTasks = document.getElementById("ToDo");
var toDoSpace = document.getElementById("toDospace");
document.getElementById("addToDo").addEventListener('click', function addToDo()
{
var aToDo = document.getElementById("newToDo").value;
ToDos.push(aToDo);
var row = document.createElement("tr");
toDoSpace.appendChild(row);
var cell= row.insertCell(0);
cell.innerHTML = ToDos[0] + "<div class ='counter'></div>";
//this did not work
if(document.getElementsByTagName("tr") == 5)
{
cell.innerHTML = "too many TODos";
}
Password.cpp:
#ifndef PASSWORD_H
#define PASSWORD_H
class Password {
private:
string aliasName_;
int hashOfPassword_;
public:
void setAliasName(string aliasName);
void setHashOfPassword(int hashOfPassword);
string getAliasName() { return aliasName_; }
int getHashOfPassword() { return hashOfPassword_; }
};
#endif
错误:
#include <string>
#include "Password.h"
using std::string;
void Password::setAliasName(string aliasName) {
aliasName_ = aliasName;
}
void Password::setHashOfPassword(int hashOfPassword) {
hashOfPassword_ = hashOfPassword;
}
有人有什么想法吗?
答案 0 :(得分:3)
您需要在宣布课程之前移动using std::string
:
#ifndef PASSWORD_H
#define PASSWORD_H
#include <string>
using std::string;
class Password {
…
并将其从.cpp文件中删除。
此外,您可能希望使用#pragma once
而不是传统的#ifndef/#define/#endif
,最后您可能希望在需要时使您的参数和方法成为常量。
答案 1 :(得分:1)
你需要移动
#include <string>
using std::string;
在Password.h
内,您可以从Password.cpp
删除这两行。
答案 2 :(得分:0)
只需将std::
添加到您的标头文件中的每个string
,请记住,您绝不能在那里使用using
或using namespace
!您还应该将所有标题都包含在您使用它们的文件中。