Fabien LE LEZ wrote:Ta classe "QCanvasLine" n'a pas de constructeur par défaut. Or, il en
faut un pour obtenir un vector<QCanvasLine>.
Ok, mais donc comment je fais ?
Puisque justement quand j'utilise un constructeur, il refuse aussi ? (voir
fin de mon message précédent)
Fabien LE LEZ wrote:
Ta classe "QCanvasLine" n'a pas de constructeur par défaut. Or, il en
faut un pour obtenir un vector<QCanvasLine>.
Ok, mais donc comment je fais ?
Puisque justement quand j'utilise un constructeur, il refuse aussi ? (voir
fin de mon message précédent)
Fabien LE LEZ wrote:Ta classe "QCanvasLine" n'a pas de constructeur par défaut. Or, il en
faut un pour obtenir un vector<QCanvasLine>.
Ok, mais donc comment je fais ?
Puisque justement quand j'utilise un constructeur, il refuse aussi ? (voir
fin de mon message précédent)
Fabien LE LEZ wrote on 11/06/2006 20:44:On Sun, 11 Jun 2006 20:35:49 +0200, eb :unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire "lignes",
pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
et pour "size" ou "length" on fait quoi ? ;)
Par ailleurs, il y a de fortes chances pour que ta variable
soit une constante :
static unsigned const nb_rows= 25;
voire même unsigned /int/, ce typage implicite est un héritage
désuet du C K&R.
Fabien LE LEZ wrote on 11/06/2006 20:44:
On Sun, 11 Jun 2006 20:35:49 +0200, eb <eb@nowhere.com>:
unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire "lignes",
pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
et pour "size" ou "length" on fait quoi ? ;)
Par ailleurs, il y a de fortes chances pour que ta variable
soit une constante :
static unsigned const nb_rows= 25;
voire même unsigned /int/, ce typage implicite est un héritage
désuet du C K&R.
Fabien LE LEZ wrote on 11/06/2006 20:44:On Sun, 11 Jun 2006 20:35:49 +0200, eb :unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire "lignes",
pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
et pour "size" ou "length" on fait quoi ? ;)
Par ailleurs, il y a de fortes chances pour que ta variable
soit une constante :
static unsigned const nb_rows= 25;
voire même unsigned /int/, ce typage implicite est un héritage
désuet du C K&R.
Fabien CHÊNE wrote on 12/06/2006 00:22:Sylvain writes:voire même unsigned /int/, ce typage implicite est un
héritage désuet du C K&R.
Pourquoi désuet ?
plus que pourquoi, dans quel cas ?
ici sur fclc++ proposer des expressions non typés, pour un
langage qu'il l'est fortement, est archaïque, non ?
Fabien CHÊNE wrote on 12/06/2006 00:22:
Sylvain <noSpam@mail.net> writes:
voire même unsigned /int/, ce typage implicite est un
héritage désuet du C K&R.
Pourquoi désuet ?
plus que pourquoi, dans quel cas ?
ici sur fclc++ proposer des expressions non typés, pour un
langage qu'il l'est fortement, est archaïque, non ?
Fabien CHÊNE wrote on 12/06/2006 00:22:Sylvain writes:voire même unsigned /int/, ce typage implicite est un
héritage désuet du C K&R.
Pourquoi désuet ?
plus que pourquoi, dans quel cas ?
ici sur fclc++ proposer des expressions non typés, pour un
langage qu'il l'est fortement, est archaïque, non ?
On Sun, 11 Jun 2006 20:35:49 +0200, eb :unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire "lignes",
pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Par ailleurs, il y a de fortes chances pour que ta variable
soit une constante :
static unsigned const nb_rows= 25;
std::vector< QCanvasLine > v(rows) ;
Ceci est un tableau (à une dimension) d'objets QCanvasLine. Est-ce
bien ce que tu veux ?
error: no matching function for call to `QCanvasLine::QCanvasLine()'
Ta classe "QCanvasLine" n'a pas de constructeur par défaut.
Or, il en faut un pour obtenir un vector<QCanvasLine>.
/usr/qt/3/include/qcanvas.h:685: note: candidates are:
QCanvasLine::QCanvasLine(const QCanvasLine&)
/usr/qt/3/include/qcanvas.h:687: note: QCanvasLine::QCanvasLine(QCanvas*)
La liste des autres constructeurs (qui ne t'es guère utile).
Ce que g++ peut être verbeux...
On Sun, 11 Jun 2006 20:35:49 +0200, eb <eb@nowhere.com>:
unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire "lignes",
pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Par ailleurs, il y a de fortes chances pour que ta variable
soit une constante :
static unsigned const nb_rows= 25;
std::vector< QCanvasLine > v(rows) ;
Ceci est un tableau (à une dimension) d'objets QCanvasLine. Est-ce
bien ce que tu veux ?
error: no matching function for call to `QCanvasLine::QCanvasLine()'
Ta classe "QCanvasLine" n'a pas de constructeur par défaut.
Or, il en faut un pour obtenir un vector<QCanvasLine>.
/usr/qt/3/include/qcanvas.h:685: note: candidates are:
QCanvasLine::QCanvasLine(const QCanvasLine&)
/usr/qt/3/include/qcanvas.h:687: note: QCanvasLine::QCanvasLine(QCanvas*)
La liste des autres constructeurs (qui ne t'es guère utile).
Ce que g++ peut être verbeux...
On Sun, 11 Jun 2006 20:35:49 +0200, eb :unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire "lignes",
pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Par ailleurs, il y a de fortes chances pour que ta variable
soit une constante :
static unsigned const nb_rows= 25;
std::vector< QCanvasLine > v(rows) ;
Ceci est un tableau (à une dimension) d'objets QCanvasLine. Est-ce
bien ce que tu veux ?
error: no matching function for call to `QCanvasLine::QCanvasLine()'
Ta classe "QCanvasLine" n'a pas de constructeur par défaut.
Or, il en faut un pour obtenir un vector<QCanvasLine>.
/usr/qt/3/include/qcanvas.h:685: note: candidates are:
QCanvasLine::QCanvasLine(const QCanvasLine&)
/usr/qt/3/include/qcanvas.h:687: note: QCanvasLine::QCanvasLine(QCanvas*)
La liste des autres constructeurs (qui ne t'es guère utile).
Ce que g++ peut être verbeux...
eb wrote on 11/06/2006 23:51:Fabien LE LEZ wrote:Ta classe "QCanvasLine" n'a pas de constructeur par défaut.
Or, il en faut un pour obtenir un vector<QCanvasLine>.
Ok, mais donc comment je fais ?
il faut définir un constructeur sans paramêtre, concrètement
un:
QCanvasLine::QCanvasLine()
{
// initialisation des données membres
}
ceci est lié au fait que le template vector contient des
références, donc la déclaration:
std::vector< QCanvasLine > v(n);
construit n QCanvasLine et donc appelle n fois le constructeur
de QCanvasLine.
par analogie et de manière peut être plus évidente, la déclaration
Tptr aRow = new T[n];
construit (littéralement) également n instances de T via un
appel à son constructeur par défaut (celui sans paramètre).
selon les opérations faites sur les vector<> déclarés vous
pourrez également avoir besoin d'opérateurs de copie T&
operator(const T&) d'un constructor de recopie T(const T&).
eb wrote on 11/06/2006 23:51:
Fabien LE LEZ wrote:
Ta classe "QCanvasLine" n'a pas de constructeur par défaut.
Or, il en faut un pour obtenir un vector<QCanvasLine>.
Ok, mais donc comment je fais ?
il faut définir un constructeur sans paramêtre, concrètement
un:
QCanvasLine::QCanvasLine()
{
// initialisation des données membres
}
ceci est lié au fait que le template vector contient des
références, donc la déclaration:
std::vector< QCanvasLine > v(n);
construit n QCanvasLine et donc appelle n fois le constructeur
de QCanvasLine.
par analogie et de manière peut être plus évidente, la déclaration
Tptr aRow = new T[n];
construit (littéralement) également n instances de T via un
appel à son constructeur par défaut (celui sans paramètre).
selon les opérations faites sur les vector<> déclarés vous
pourrez également avoir besoin d'opérateurs de copie T&
operator(const T&) d'un constructor de recopie T(const T&).
eb wrote on 11/06/2006 23:51:Fabien LE LEZ wrote:Ta classe "QCanvasLine" n'a pas de constructeur par défaut.
Or, il en faut un pour obtenir un vector<QCanvasLine>.
Ok, mais donc comment je fais ?
il faut définir un constructeur sans paramêtre, concrètement
un:
QCanvasLine::QCanvasLine()
{
// initialisation des données membres
}
ceci est lié au fait que le template vector contient des
références, donc la déclaration:
std::vector< QCanvasLine > v(n);
construit n QCanvasLine et donc appelle n fois le constructeur
de QCanvasLine.
par analogie et de manière peut être plus évidente, la déclaration
Tptr aRow = new T[n];
construit (littéralement) également n instances de T via un
appel à son constructeur par défaut (celui sans paramètre).
selon les opérations faites sur les vector<> déclarés vous
pourrez également avoir besoin d'opérateurs de copie T&
operator(const T&) d'un constructor de recopie T(const T&).
Fabien LE LEZ writes:On Sun, 11 Jun 2006 20:35:49 +0200, eb :unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire
"lignes", pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Je trouve ce nom de variable assez fragile dans le sens où il
repose sur le s final. nb_row pourrait être interprété comme
numéro de la ligne (du fait que number veut dire à la fois
nombre et numéro).
Même avec le s final, je trouve toujours cela ambigüe. nb_rows
pourrait vouloir dire numéro des lignes.
Je trouve qu'il est plus simple de nommer la variable
row_count.
Fabien LE LEZ <gramster@gramster.com> writes:
On Sun, 11 Jun 2006 20:35:49 +0200, eb <eb@nowhere.com>:
unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire
"lignes", pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Je trouve ce nom de variable assez fragile dans le sens où il
repose sur le s final. nb_row pourrait être interprété comme
numéro de la ligne (du fait que number veut dire à la fois
nombre et numéro).
Même avec le s final, je trouve toujours cela ambigüe. nb_rows
pourrait vouloir dire numéro des lignes.
Je trouve qu'il est plus simple de nommer la variable
row_count.
Fabien LE LEZ writes:On Sun, 11 Jun 2006 20:35:49 +0200, eb :unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire
"lignes", pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Je trouve ce nom de variable assez fragile dans le sens où il
repose sur le s final. nb_row pourrait être interprété comme
numéro de la ligne (du fait que number veut dire à la fois
nombre et numéro).
Même avec le s final, je trouve toujours cela ambigüe. nb_rows
pourrait vouloir dire numéro des lignes.
Je trouve qu'il est plus simple de nommer la variable
row_count.
nb n'est il jamais l'abbréviation de number en anglais ?
nb n'est il jamais l'abbréviation de number en anglais ?
nb n'est il jamais l'abbréviation de number en anglais ?
Fabien CHÊNE wrote:Fabien LE LEZ writes:On Sun, 11 Jun 2006 20:35:49 +0200, eb :unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire
"lignes", pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Je trouve ce nom de variable assez fragile dans le sens où il
repose sur le s final. nb_row pourrait être interprété comme
numéro de la ligne (du fait que number veut dire à la fois
nombre et numéro).
Pas vraiement.
C'est vrai que le mélange d'anglais et de français peut souvent
prêter à la confusion. Mais ici, nb, c'est manifestement du
français -- ça ne signifie rien en anglais.
Et en français, nb n'est pas du tout ambigu : c'est nombre, et non
numéro. En anglais, j'utilise le mot « count » dans ce cas-ci, pour
éviter l'ambiguïté. Ça me donne donc : « nbLignes » ou « lineCount
».Même avec le s final, je trouve toujours cela ambigüe. nb_rows
pourrait vouloir dire numéro des lignes.
Je trouve qu'il est plus simple de nommer la variable
row_count.
En anglais. C'est la solution que j'ai adopté aussi. En
revanche, beaucoup d'anglophones se contentent de la distinction
« number[Of]Rows » et « rowNumber » -- l'ordre des mots enlève
l'ambiguité. J'ai aussi entendu parler des boîtes où la règle
interne été que number au sens de nombre se raccorcissait "num",
mais aus sens de numéro "no". (En fait, je crois que je n'ai
jamais vu l'abbreviation "no" en anglais sauf qu'avec la
signification numéro.)
Fabien CHÊNE wrote:
Fabien LE LEZ <gramster@gramster.com> writes:
On Sun, 11 Jun 2006 20:35:49 +0200, eb <eb@nowhere.com>:
unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire
"lignes", pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Je trouve ce nom de variable assez fragile dans le sens où il
repose sur le s final. nb_row pourrait être interprété comme
numéro de la ligne (du fait que number veut dire à la fois
nombre et numéro).
Pas vraiement.
C'est vrai que le mélange d'anglais et de français peut souvent
prêter à la confusion. Mais ici, nb, c'est manifestement du
français -- ça ne signifie rien en anglais.
Et en français, nb n'est pas du tout ambigu : c'est nombre, et non
numéro. En anglais, j'utilise le mot « count » dans ce cas-ci, pour
éviter l'ambiguïté. Ça me donne donc : « nbLignes » ou « lineCount
».
Même avec le s final, je trouve toujours cela ambigüe. nb_rows
pourrait vouloir dire numéro des lignes.
Je trouve qu'il est plus simple de nommer la variable
row_count.
En anglais. C'est la solution que j'ai adopté aussi. En
revanche, beaucoup d'anglophones se contentent de la distinction
« number[Of]Rows » et « rowNumber » -- l'ordre des mots enlève
l'ambiguité. J'ai aussi entendu parler des boîtes où la règle
interne été que number au sens de nombre se raccorcissait "num",
mais aus sens de numéro "no". (En fait, je crois que je n'ai
jamais vu l'abbreviation "no" en anglais sauf qu'avec la
signification numéro.)
Fabien CHÊNE wrote:Fabien LE LEZ writes:On Sun, 11 Jun 2006 20:35:49 +0200, eb :unsigned rows = 25
Je n'aime pas beaucoup ce nom de variable : "rows" veut dire
"lignes", pas "nombre de lignes".
Généralement j'écris "nb_rows" (ou "nb_lignes").
Je trouve ce nom de variable assez fragile dans le sens où il
repose sur le s final. nb_row pourrait être interprété comme
numéro de la ligne (du fait que number veut dire à la fois
nombre et numéro).
Pas vraiement.
C'est vrai que le mélange d'anglais et de français peut souvent
prêter à la confusion. Mais ici, nb, c'est manifestement du
français -- ça ne signifie rien en anglais.
Et en français, nb n'est pas du tout ambigu : c'est nombre, et non
numéro. En anglais, j'utilise le mot « count » dans ce cas-ci, pour
éviter l'ambiguïté. Ça me donne donc : « nbLignes » ou « lineCount
».Même avec le s final, je trouve toujours cela ambigüe. nb_rows
pourrait vouloir dire numéro des lignes.
Je trouve qu'il est plus simple de nommer la variable
row_count.
En anglais. C'est la solution que j'ai adopté aussi. En
revanche, beaucoup d'anglophones se contentent de la distinction
« number[Of]Rows » et « rowNumber » -- l'ordre des mots enlève
l'ambiguité. J'ai aussi entendu parler des boîtes où la règle
interne été que number au sens de nombre se raccorcissait "num",
mais aus sens de numéro "no". (En fait, je crois que je n'ai
jamais vu l'abbreviation "no" en anglais sauf qu'avec la
signification numéro.)
J'ai essayé une version simplifiée dans un premier temps,
unsigned rows = 25
std::vector< QCanvasLine > v(rows) ;
mais sans succès :
J'ai essayé une version simplifiée dans un premier temps,
unsigned rows = 25
std::vector< QCanvasLine > v(rows) ;
mais sans succès :
J'ai essayé une version simplifiée dans un premier temps,
unsigned rows = 25
std::vector< QCanvasLine > v(rows) ;
mais sans succès :
Fabien CHÊNE wrote on 12/06/2006 00:22:Sylvain writes:voire même unsigned /int/, ce typage implicite est un héritage désuet
du C K&R.
Pourquoi désuet ?
plus que pourquoi, dans quel cas ?
ici sur fclc++ proposer des expressions non typés, pour un langage
qu'il l'est fortement, est archaïque, non ?
Fabien CHÊNE wrote on 12/06/2006 00:22:
Sylvain <noSpam@mail.net> writes:
voire même unsigned /int/, ce typage implicite est un héritage désuet
du C K&R.
Pourquoi désuet ?
plus que pourquoi, dans quel cas ?
ici sur fclc++ proposer des expressions non typés, pour un langage
qu'il l'est fortement, est archaïque, non ?
Fabien CHÊNE wrote on 12/06/2006 00:22:Sylvain writes:voire même unsigned /int/, ce typage implicite est un héritage désuet
du C K&R.
Pourquoi désuet ?
plus que pourquoi, dans quel cas ?
ici sur fclc++ proposer des expressions non typés, pour un langage
qu'il l'est fortement, est archaïque, non ?