|
|
Iain Clarke wrote: "Ignoring guidelines since 2006" sounds like a motto on the side of a builder's van...
Iain Clarke wrote: it may be time to retire from the C++ board for a few days...
Please, please don't do that.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
OK, I'll carry on wielding my blunt knife of wasted sarcasm...
Maybe I'll put "by special request" in my sig.
OT:
You chuckled at "Signor Pallini" before - am I wrong? Is the CP for codeproject, and allini means something in Italian?
Iain.
|
|
|
|
|
Iain Clarke wrote: Maybe I'll put "by special request" in my sig.
That's nice idea. BTW, by Special request of CPallini.
Iain Clarke wrote: You chuckled at "Signor Pallini" before - am I wrong?
Yes, I simply was amused because you used the Italian term (I'm used to have bad times at Soapbox because of my English).
Iain Clarke wrote: Is the CP for codeproject, and allini means something in Italian?
Carlo Pallini.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
I did check up your profile - the Signor wasn't a lucky guess. You almost had Senor until my brain started firing again.
As for you having bad times about your Inglesi[*] - I've not noticed you making mistakes, and I'm pretty critical. And it's hard enough for me to understand some of the butchered english here. I'm curious as to whether being a second language makes them easier or harder for you to parse.
If they give you grief, ask them to translate their complaint into your language. Or have a on me.
Iain.
ps, Check my sig!
[*] Most of my knowledge of Italian and German comes from Battle comic from my youth. I'm fully fluent in german if ever I need to capture a pigdog english airman... Shockingly, this has yet to prove useful.
Iain Clarke appearing by Special Request of CPallini.
|
|
|
|
|
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Wow, the guy is posting since 2006 .
He learned a lot, I see
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
hi
i want to display a progress bar in listview control as a subitem.
the progress bar would continously be updated and i shouldnt use any images.
i am using vc++ 2005 and i am not using MFC.
i am using win32 programming.
i know this can be done using custom control but if any one knows more than that please reply (i.e with a smaple code)
|
|
|
|
|
Did you search on the codeproject?
|
|
|
|
|
yes i did but couldnot find it
|
|
|
|
|
Hans wrote an article that List control has controls like progress bar,checkbox,... if you can find it on the codeproject it will be your answer.
|
|
|
|
|
Hello,
This might be a basic point in C++ but i need help......
This is the code snippet i've been using:
typedef char* myString;
main()
{
myString i="abcd";
myString j="ABCD";
....
}
I need to copy j to i. But i'm not able to use usual strcpy. I also tried assigning char by char using for loop. ( i[1]=j[1] etc). But it didn't work.
I dont want to use array format for the string, it should be char* only. Also i dont want to directly point i to j(i=j) coz it might result in memory leak.
Plz, suggest some alternative.....
|
|
|
|
|
gReaen wrote: Also i dont want to directly point i to j(i=j) coz it might result in memory leak.
No it won't.
Anyway, for such string manipulations, it is much easier to use the string class from the STL (std::string).
|
|
|
|
|
A typedef isn't enough to transform a string literal (as well a char pointer) into a string.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
gReaen wrote: But it didn't work.
The only way that would work would be to change the declarations to:
char i[] = "abcd";
char j[] = "ABCD"; See here for the difference in why one can be changed and not the other.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
You should never loose sight of the code generated by the compiler. In your case the Compiler will include two char arrays into the excecutable, namely "abcd" and "ABCB" The fact that you Tyedefed them as myString has confused you more than the compiler. You cannot copy i to j, because both are in memory reserved for string constants. In other words: Both are in 'read only' memory. I strongly suggest that you get a copyof the excelent book written by Brian Kernighan and Denis Ritchie about the 'C' language (Never mind CPP). And rephrase the question above after reading these books.
If you do the appropriate amount of study,you will realise that in the above example code fragments, memoryleaks are not even close to being an issue.
Bram van Kampen
|
|
|
|
|
is there any technical difference between invoking a constructor using
class obj(5,20) and class obj=class(10,40).
Thanks in advance
|
|
|
|
|
philiptabraham wrote: can anybody help me out
Not if you don't read the sticky posting called "how to get answers", and the line that says "please use meaningful subjects". I've yet to see someone post a message with a subject of "ignore this - I don't need any assistance".
But I'll be nice anyway..
1/ The numbers are different, so there will be differences.
2/ Less trivially, the first example just calls the constructor. The second example makes two objects, (obj, and a temp one), then copies temp to obj, then destroys the temp object.
If it's CPoint, then it's trivial. If it opens / closes databases, does a network operation etc, then the difference could be HUGE.
Iain,
-------
Update: See CPallini's and my conversation later. Short version: No actual difference between the two bits of code (except the numbers!)
modified on Friday, February 01, 2008 5:13:33 AM
|
|
|
|
|
|
Cedric Moonen wrote: I don't need any assistance
Sure?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
I knew *someone* would bite - but I assumed it would be Signor Pallini. And he's the one who gave a sensible reply!
Iain.
|
|
|
|
|
Iain Clarke wrote: I knew *someone* would bite
WOW I missed something, anyway usually Cedric is a very nice guy.
Iain Clarke wrote: but I assumed it would be Signor Pallini
Pallini is a quite docile guy too, isn't he?
BTW Signor in that context was fantastic!
Iain Clarke wrote: And he's the one who gave a sensible reply!
Oh, well, hence I can assume he is.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Well, it's friday That explains a lot
|
|
|
|
|
Iain Clarke wrote: 2/ Less trivially, the first example just calls the constructor. The second example makes two objects, (obj, and a temp one), then copies temp to obj, then destroys the temp object.
I thought the same. But I made a little test (optimization disabled):
#include <iostream>
using namespace std;
class MyClass
{
public:
int _a, _b;
MyClass(){}
MyClass(int a, int b):_a(a), _b(b){}
MyClass(const MyClass & proto)
{
_a = 0;
_b = 0;
}
MyClass & operator = (const MyClass & proto)
{
_a = proto._b;
_b = proto._a;
return *this;
}
};
void main()
{
MyClass my1(3,2);
MyClass my2=MyClass(3,2);
MyClass my3(my1);
MyClass my4;
my4=my1;
cout << "my1: " << my1._a << " " << my1._b << endl;
cout << "my2: " << my2._a << " " << my2._b << endl;
cout << "my3: " << my3._a << " " << my3._b << endl;
cout << "my4: " << my4._a << " " << my4._b << endl;
}
</iostream>
and to my surprise, the output:
my1: 3 2
my2: 3 2
my3: 0 0
my4: 2 3
Well I'm really upset about. What do you think?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
It's because the compiler will treat this:
CMyCLass my1 = my2;
As this:
CMyClass my1(my2);
If you would have done that operation on two lines, then the assignment operator would have been called.
|
|
|
|