Re: Protected declaration
mkarja a ?crit :
On 2 loka, 11:39, Michael DOUBEZ <michael.dou...@free.fr> wrote:
mkarja a ?crit :
Hi,
I have file, let's say file2.cpp that #includes file1.h.
file1.h looks something like this. Somewhat stripped version.
---------------------------------------------
#include <mysql/mysql.h>
class file1
{
public:
file1();
~file1();
protected:
MYSQL mysql;
}
---------------------------------------------
In file2.cpp I have a line: mysql_autocommit(&mysql, 0);
The g++ gives an error: error: 'mysql' was not declared in this scope.
Shouldn't I be able to use mysql in this case from the file2.cpp
because
mysql was declared in file1.h under Protected.
I guess MYSQL is an opaque type. It means it is not defined in the
header only declared (like FILE in stdio).
You cannot instanciate it directly but use a pointer instead.
Somathing like:
Mysql* mysql=mysql_init();
Michael
Thanks for the answer.
I tried to put the: Mysql* mysql=mysql_init();
in file1.h under Protected, but it didn't help. The same error still.
As Markus Moll said in another message, I have been a little quick with
the diagnostic. The only other reason I see for now is that you are not
in the file1 scope.
Your Contructor should be something like:
file1::file1()
{
mysql=mysql_init();
//I guess autocommit is a mode
mysql_autocommit(mysql, 0);
}
Michael