[sclug] C++ Question
Paul Vanlint
paul at polyzing.com
Sat Oct 25 09:05:44 UTC 2003
Two things:
1) include string, not string.h, so include line should read
#include <string>
2) Make sure you link to the stdc++ library
e.g. gcc filewriter.cpp -lstdc++
Also, just as a general point, try not to include c headers unless
absolutely necessary, e.g. stdio.h is probably not needed.
Regards,
Paul.
-----Original Message-----
From: sclug-admin at sclug.org.uk [mailto:sclug-admin at sclug.org.uk]On
Behalf Of Tim Sutton
Sent: Thursday, June 19, 2003 8:27 AM
To: sclug at sclug.org.uk
Subject: [sclug] C++ Question
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi
Any of you C++ gurus able to tell me what is wrong with this? I am trying to
get the alterrnate constructor to work that takes a string for the filename
rather than the filename.
When compiling I get the following:
aps02ts at pc2-rdng3-4-cust67:~/dev/cpp/csm_dataprep/csm_dataprep$ g++
filewriter.cpp
In file included from filewriter.cpp:18:
filewriter.h:33: parse error before `,' token
filewriter.cpp:31: prototype for
`FileWriter::FileWriter(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, FileWriter::FileTypeEnum)' does not match any in
class `FileWriter'
filewriter.h:27: candidates are: FileWriter::FileWriter(const FileWriter&)
filewriter.cpp:21: FileWriter::FileWriter(const char*,
FileWriter::FileTypeEnum)
But I dont see what the problem around the comma on line 33 is :-(
Thanks
Tim
- --------------------------------------------------------------------------
-
filewriter.h:
- --------------------------------------------------------------------------
-
#ifndef FILEWRITER_H
#define FILEWRITER_H
#include <stdio.h>
#include <string.h>
/**A FileWriter is used to store the results of the climate data processor
in
a persistant manner.
*@author Tim Sutton
*/
class FileWriter {
public:
enum FileTypeEnum { CSM_MATLAB , CSM_OCTAVE , GARP , ESRI_ASCII ,
PLAIN
};
/** constructor */
FileWriter(const char *theFileName, FileWriter::FileTypeEnum
theFileFormat);
/** Alternate constructor that takes a string for the filename rather than
a
char array. */
FileWriter(const std::string theFileNameString, FileWriter::FileTypeEnum
theFileFormat);
/** destrctor */
~FileWriter();
/** Write a float element to the output file. */
bool writeElement(float theElementFloat);
private:
/** The FILE handle containing our output data matrix. */
FILE *filePointer;
};
#endif
- --------------------------------------------------------------------------
-
filewriter.cpp :
- --------------------------------------------------------------------------
-
#include "filewriter.h"
#include <iostream>
FileWriter::FileWriter(const char *theFileNameChar, FileWriter::FileTypeEnum
theFileFormat){
if ((filePointer=fopen(theFileNameChar,"wb"))==NULL) //open in binary
mode
{
//cout << "Cannot open file : " << theFileNameChar << endl;
}
//cout << "Opened file : " << theFileNameChar << " successfully." << endl;
}
/** Alternate constructor that takes a string for the filename rather than a
char array. */
FileWriter::FileWriter(const std::string theFileNameString,
FileWriter::FileTypeEnum theFileFormat){
}
FileWriter::~FileWriter(){
}
/** Write a float element to the output file. */
bool FileWriter::writeElement(float theElementFloat){
fprintf ( filePointer, "%f ",theElementFloat);
}
- --
Get my public keys from:
http://tim.suttonfamily.co.uk/modules.php?name=Content&pa=showpage&pid=2
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE+8WWuWvXTJUo0BDoRAiGKAJ0W3SiQiZ0PSqd/LkztwHw/OSpn5gCgpjt5
JyHQOQ3xJDN1FhueomnQ3Dw=
=/ySL
-----END PGP SIGNATURE-----
_______________________________________________
sclug mailing list
sclug at sclug.org.uk
http://www.sclug.org.uk/mailman/listinfo/sclug
More information about the Sclug
mailing list