Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
Includere biblioteca intr-un fisier header
Last Updated: Apr 22 2014 22:39, Started by
Rhesus
, Apr 22 2014 17:37
·
0
#1
Posted 22 April 2014 - 17:37
Va salut cu respect!
Detin un fisier header, care defineste o clasa. In aceasta, am declarat prototipurile metodelor + cate prototipuri de functii friend externe, urmand a avea un fisier de implementare pentru metode si functii (cu definitia lor completa). Intr-un prototip al unei metode, apare un string - ca parametru si anume: private: bool verify(string); De asemenea am si o functie friend externa, deci am in clasa si: friend operator<<(class,string); Implementarile lor sunt, repet, intr-un fisier de implementare (clasic). Problema este ca desi am inclus biblioteca string (#include "string") in fisierul header, la compilare, primesc mesajul "string" has not been declared (adica exact ca si cand nu as fi declarat biblioteca string). Am incercat inclusiv sa includ toate bibliotecile folosite intr-un alt fisier header doar cu biblioteci, si astfel sa includ doar una peste tot unde e nevoie .. fara rezultat. Pur si simplu, cand ajunge compilatorul si ,,citeste" clasa din header, nu recunoaste identificatorul string desi am inclus-o imediat sub #ifndef Unde gresesc? Edited by Rhesus, 22 April 2014 - 17:41. |
#2
Posted 22 April 2014 - 17:41
Inlocuieste string cu std::string, in locurile in care e folosit.
|
#3
Posted 22 April 2014 - 17:43
Ai doua posibilitati:
1.scrii std:: inaintea cuvantului string 2.scrii la inceput using namespace std; |
#4
Posted 22 April 2014 - 17:47
Nu-i recomandat sa folosesti using namespace std in fisierele header.
|
#5
Posted 22 April 2014 - 17:53
Cat de prost sa fiu sa uit de namespace... de unde sa scoata string-ul care e declarat in namespace-ul std... Mersi fain! Dupa cateva sute de linii, iti mai scapa ...
|
#6
Posted 22 April 2014 - 18:05
#7
Posted 22 April 2014 - 18:29
Vezi ca e posibil ca nici functiile friend sa nu fie necesar sa fie defapt friend.
|
#8
Posted 22 April 2014 - 21:49
@dani.user
Stiu ca functiile friend ies din sfera OOP-ului (si sunt de evitat) dar cred ca sunt necesare atata timp cat conduc operatii intre 2 instante ale unor clase diferite (definite separat). In rest, incerc cat mai mult sa profit de beneficiile OOP, si sa incapsulez datele cu ajutorul claselor. Edited by Rhesus, 22 April 2014 - 21:50. |
#9
Posted 22 April 2014 - 22:39
Tocmai aici e confuzia.
Singurul rol a lui friend e sa permiti acces unei alte clase la parametrii privati, ori daca ai o functie getValue() de exemplu, publica, poti bine-mersi s-o folosesti in cadrul operator<<(ostream&...) si nu-ti mai trebuie nici un friend. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users