Czesc, dalej bawie sie z pqxx (bilioteka postgresql pod c++) i napotkalem pewien problem otoz jak dzialaja zmienne lokalne w metodach klasy i czy da sie taka zmienna wyciagnac. Wytlumacze problem.
Mam jedna metode klasy w ktorej robie cos takiego. connection C("dbname="+dbname+" user="+user+" password="+password+" hostaddr="+hostaddr+" port="+port);
A w drugiej metodzie potrzebuje sie odwolac do obiektu C w taki sposob work W(C);
ale dostaje C was not declared in this scope.
Teraz wrzucam prototyp tej klasy
#ifndef TABELASQL_HPP_INCLUDED
#define TABELASQL_HPP_INCLUDED
#include <pqxx/pqxx>
#include <array>
#include <vector>
#include <iostream>
#include <string>
using namespace std;
using namespace pqxx;
class TabelaPostgre;
class TabelaPostgre
{
public:
connection C;
string name;
public:
template<typename T,typename... Rest> void create(T& x, Rest... rest);
void connect_2_db();
template<typename T,typename... Rest> void INSERT(T& x, Rest... rest);
template<typename T,typename... Rest> void SELECT(T& x, Rest... rest);
void DELETE();
};
#endif // TABELASQL_HPP_INCLUDED
Nadal nie dziala a to pewnie dlatego ze zle sie odnosze do szablonu funkcji w pliku cpp ale teoretyzuje bo kompilator mi tam wywala blad.
Prosilbym o wyjasnienie i wytlumaczenie bledu.
PS: Nie chcialbym zasmiecac main'a i innych metod klasy kolejnymi obiektami kiedy mam je juz w jednej funkcji ale lokalnie. Globalnie nie dziala :(
Pozdrawiam wiem ze podalem nie za duzo informacji wiec jakby cos to pisac.