I receive this "error: 'string' not declared" when compiling [closed] - c++

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions concerning problems with code you've written must describe the specific problem — and include valid code to reproduce it — in the question itself. See SSCCE.org for guidance.
Closed 9 years ago.
Improve this question
I am running into an error when compiling. The error states that 'string' is not declared. I know I'm not supposed to "include" anything in these files. The header file declares a class, and lists the member functions. Two of those functions have an integer passed as a parameter, and two others have a string passed as a parameter. The .cpp file is using namespace, and the string variable is definitely declared. What could be the issue?
Security.h
class Security
{private:
public:
void Driver();
void EncFileUsingRot(int rotNum);
void EncFileUsingCrypto(string file);
void DecFileUsingRot(int rotNum);
void DecFileUsingCrypto(string file);
};
Security.cpp
#include<fstream>
#include<iostream>
#include "Security.h"
using namespace std;

Two errors.
Firstly Security.h should have
#include <string>
Secondly
void EncFileUsingCrypto(string file);
should be
void EncFileUsingCrypto(std::string file);
and
void DecFileUsingCrypto(string file);
should be
void DecFileUsingCrypto(std::string file);

Related

Unable to access helper functions not in the namespace: undeclared identifier [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 12 months ago.
Improve this question
I currently have a namespace set up like this:
SomeClass.h
namespace somenamespace {
class SomeClass {
public:
foo();
}
}
SomeClass.cpp
namespace somenamespace {
SomeClass::foo() {
somehelperfunction();
}
}
void somehelperfunction() {
std::cout << "hejflsdjf\n";
}
Without changing my header file, I cannot find a way to implement this helper function in a way which allows my class implementation to access the helper function. I was under the impression that as long as the helper function was in the same file I would be able to access it within the class implementation. But I get a "undeclared identifier" error when trying to build.
Functions must be declared before called.

C++ Right way to define function's default arguments [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 5 years ago.
Improve this question
As far I understood the right place to put the default parameters is the declaration file (*.h). So for example:
test.cpp
void print_a(int a){
std::cout << a;
}
test.h
void print_a(int a = 5);
In this case I could have a third file. Where I can run print_a() with or without parameters.
main.cpp
#include test.h
int main(void)
{
print_a();
print_a(6);
return 0;
}
The problem is, what if inside test.cpp I have another function that wants to use print_a without parameters? The compiler tells me that the function has too few arguments.
How do you do it then ?
You need to provide the declaration of the function, with the default value, in test.cpp. The best way to do that is to #include test.h in test.cpp.

C++ compiler thinks my constructor definition is a method [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 7 years ago.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Improve this question
I'm getting the following errors:
C:\Users\James\cavewhere\dewalls\src\unit.cpp:6: error: C2511: 'dewalls::Unit::Unit(QString,dewalls::UnitType *)' : overloaded member function not found in 'dewalls::Unit'
C:\Users\James\cavewhere\dewalls\src\unit.cpp:9: error: C2550: 'dewalls::Unit::{ctor}' : constructor initializer lists are only allowed on constructor definitions
unit.h:
#ifndef UNIT_H
#define UNIT_H
class UnitType;
#include <QString>
namespace dewalls {
class Unit
{
public:
Unit(QString name, UnitType *type);
private:
QString _name;
UnitType *_type;
};
}
#endif // UNIT_H
unit.cpp:
#include "unit.h"
#include "unittype.h"
namespace dewalls {
Unit::Unit(QString name, UnitType *type) :
_name(name),
_type(type)
{
}
}
What for the love of god am I doing wrong?
Looks like UnitType should be in your namespace too
namespace dewalls {
class UnitType;
}

Redefinition of a class in C++ [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 8 years ago.
Improve this question
I'm new to C++ and stuck in a problem with an Error, called
"Semantic Issue: Redefinition of 'B' cB.h".
I have two classes, A and B, where cA should handle an Object of cB by reference and one friend function of cA, fExample. This is what the code looks like:
.h file cA:
#include "cB.h"
class A{
int val1, val2;
public:
friend void fExample(int, cB &);
};
.h file cB:
class B{
int val1, val2;
public:
void set_val1(int);
};
.cpp file cB:
#include <iostream>
#include "cB.h"
using namespace std;
void B::set_val1(int tVal){
val1 = tVal;
}
For me, it seems there is no way of working with the cB-object by reference with a friend function of cA. I would know some workarounds, but that's not my intention, I want to learn how to handle this problem the right way.
So thanks in advance for helping!
This type of error often happen due to missing include guards. The Simplest way is:
#ifndef HEADER_NAME
#define HEADER_NAME
You may also use #pragma once

Problem using recursive method in c++ [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 5 years ago.
Improve this question
I have a class, defined in a .h like this
#ifndef JLLABOUR_H
#define JLLABOUR_H
class JLLabour{
public:
JLLabour(int, int);
double* recursivefft(double*,int);
void FFT(int*);
~JLLabour();
private:
int width;
int height;
};
#endif // JLLABOUR_H
and in my .cpp I have the definition of my recursive function, the problem is that when I call it again , during compilation it doesnt allow me to continue because the method has not been defined yet. I dont know how to solve this, please help.
#include <JLLabour.h>
double* JLLabour::recursivefft(double* x,int asize){
//operations and declartions...
//...
even = recursiveFFT(sum,m); //<-- the problem is here, in the recursion.
odd = recursiveFFT(diff,m);
// more operations....
return result;
}
}
FYI I am compiling under Linux, using Qt because Im developing a graphic app...
C++ is case sensitive. Your method is called recursivefft not recursiveFFT.