2016-03-25 29 views
1

C++ 'da çok yeniyim. Sınıf tanımındaki mysql bağlantısını nerede ve nasıl tanımlayacağım? Bir sınıf kurucusunda bağlantı oluşturmaya çalışıyorum. Ve yıkıcı aradığında kapatın. Sadece nasıl düzgün yapılacağına dair bazı ipuçlarına ve sınıf yöntemleri içinde nasıl arayacağım? 'bu-> mysql' gibi bir şey var mı?C++: Bir sınıf içinde mysql bağlantısı nasıl oluşturulur ve kullanılır

class Queue { 
    public: 
    Queue() { 
     MYSQL *mysql = NULL; 
    ...   
     mysql = mysql_init(NULL); 
     if(!mysql_real_connect(mysql, getMySqlHost().c_str(),... 
    } 

void someFunction (const std::string & MyStr){ 
    mysql_query(this->mysql,MyStr.c_str()); 
... 

ve yıkıcı:

~Queue() { mysql_close(this->mysql); } 

im derleyici yardımsever size haberdar olarak " 'sınıf Kuyruk' hayır üyesi var, çünkü derleme hatasıdır alıyoruz queue.h:231:31: error: ‘class Queue’ has no member named ‘mysql’

cevap

0

nedeni alma 'mysql' olarak adlandırıldı. Nadir örneklerden biri, anlamlı İngilizce kullanarak bir derleyici hata mesajı görüyorum.

Sen "mysql" adlı Yapıcınızda içinde bir yerel değişken yerine bir sınıf üyesi ilan etti.

Bildiğim kadarıyla herhangi bir "düzgün bunu nasıl ipuçları", bir yaklaşım bu tür 1. ucu kopya kurucu ve atama operatörü devre dışı bırakmak için olduğu gibi. Ev ödevi atama, "RAII" anahtar kelimesi Google'a aittir ve ne bulduğunuza dayalı olarak, bunu neden yapmanız gerektiğine dair cevabı bulmalısınız.

+0

Sadece nasıl yapılacağına dair bir örneğe ihtiyacım var. İzlediğim tüm C++ öğretici videoları, 'köpekler' ve 'kediler' sınıfları yaratma hakkındaydı ve buna benzer hiçbir şey yoktu. RAII samle'da hala oldukça basit 'sınıf dosyası { class: dosya (const char * dosya adı): m_file_handle (std :: fopen (dosya adı," w + "))' – Shirker

+0

Aptal küçük öğreticiler nadiren yararlı bilgiler sağlarlar. C++ öğrenmenin tek pratik yolu kitap mağazasına gitmek, en büyük, en yağlı, en ağır C++ kitabını bulmak ve okumaya başlamak. –

İlgili konular