On Sunday, 16 April 2023 at 08:38:55 UTC, Ali Çehreli wrote:
On 4/16/23 00:46, Skippy wrote:
> I wish D had value type classes as well.
That cannot work due to the slicing problem.
C++ cannot have value type classes either for the same reason.
The difference there is that the enforcement is b
On 4/16/23 00:46, Skippy wrote:
> I wish D had value type classes as well.
That cannot work due to the slicing problem.
C++ cannot have value type classes either for the same reason. The
difference there is that the enforcement is by guidelines (e.g. "never
pass class objects by value to func
On Sunday, 16 April 2023 at 07:46:53 UTC, Skippy wrote:
I wish D had value type classes as well.
I like the distinction between class and struct in D. It
encourages you to think harder about how you intend to use your
types. In C++, there may as well only be one or the other; the
distincti
On Sunday, 16 April 2023 at 06:39:17 UTC, Mike Parker wrote:
`t1` is default-initialized, so it's null.
test t1, t2 = new test();
silly me. I should have picked that up myself. thanks.
Ditto for t3. Classes are reference objects, not value objects,
so you must explicitly instantiate inst
On Sunday, 16 April 2023 at 05:58:39 UTC, Skippy wrote:
These lines aren't necessary:
// ??
int counter;
// ??
static this()
{
counter = test.objCnt;
}
`t1` is default-initialized, so it's null.
test t1, t2 = new test();
Ditto for t3. Classes are reference objects, not value obje
Anyone wanna try converting this C++ example to D?
(I tried, but getting nowhere.. so far).
// --- C++ example - working -
#include
using std::cout;
class test
{
private:
int objNo;
static int objCnt;
public:
test()
{
objNo = ++objCnt;
}
~test()
{