Commit 5b7d10a1 authored by O'Reilly Media, Inc.'s avatar O'Reilly Media, Inc.
Browse files

Initial commit

parents
Loading
Loading
Loading
Loading
+78 −0
Changes for Chapter 1/0101_code.cpp: 78 added lines, 0 removed lines.
Original line number Diff line number Diff line
// 0101.cpp

//-- Not good.  It's wrong.

char BufferClass::getLastChar()
{
	return *(this->m_buffer + strlen(this->m_buffer));
}

//-- Better, but still not good: it's not wrong, but it's not right.

char BufferClass::getLastChar()
{
	return *(this->m_buffer + strlen(this->m_buffer) - 1);
}

//------------------------------

// It leaks

int Portfolio::finalTally(Asset &asset)
{
	AssetCalculator *pCalc = new AssetCalculator(asset);
	return pCalc->finalTally();
}

// Now you see it--now you don't.

char *Editor::extractClip(size_t startOffset, size_t endOffset)
{
	char szclip[MAX_BUFFER_SIZE] = {0};
	strcpy(szClip,GetClipSection(startOffset,endOffset));
	return szClip;
}

//------------------------------

void SomeClass:method()
{
	Asset *pAsset = new Asset();

	if (externalCondition()) {
		.
		.
		.
		.
		if (ruhRoh()) {
			delete pAsset;
		}
	} else {
		.
		.
		.
	}

	int iResult = pAsset->getValue();

	delete pAsset;

	return iResult;
}

//------------------------------

// In a debug build items get initialized; in release builds, they don't.

//------------------------------

int i;

for(i = 0; i < iMax; ++i) {
	if (exitCondition(i)) {
		break;
	}
}

printf("Found item at reference #%d\n",i);
+35 −0
Changes for Chapter 1/example_1.cpp: 35 added lines, 0 removed lines.
Original line number Diff line number Diff line
MyClass myInstance = new myClass();  //C#

MyClass *myInstance = new MyClass(); //C++


void MyMethod(SomeResrouceType resource)
{
    MyClass myInstance = new MyClass(resource);
}

void MyMethod(SomeResourceType resource)
{
    MyClass *myInstance = new MyClass(resource);
}

void MyMethod(SomeResourceType resource)
{
    MyClass *myInstance = new MyClass(resource);
    .
    .
    .
    delete myInstance;
}

void MyMethod(SomeResourceType resource)
{
    MyClass myInstance(resource);
    // No need to clean up
}





Chapter 1/stl_wrap.cpp

0 → 100755
+29 −0
Changes for Chapter 1/stl_wrap.cpp: 29 added lines, 0 removed lines.
Original line number Diff line number Diff line

void MyMethod(SomeResourceType resource)
{
    MyClass *myInstance = new MyClass(resource);
    .
    .
    .
    delete myInstance;
}

void MyMethod(SomeResourceType &resource)
{
    auto_ptr<MyClass> my Instance (new MyInstance(resource));
    .
    .
    .
}

void MyMethod(SomeResourceType resource)
{
    MyClass myInstance(resource);
    // No need to clean up
}





+7 −0
Changes for Chapter 10/No Work Files.rtf: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural

\f0\fs24 \cf0 No work files for this lesson...}
 No newline at end of file
+12 −0
Changes for Chapter 2/lastIndexOf.cpp: 12 added lines, 0 removed lines.
Original line number Diff line number Diff line
template <class T> int lastIndexOf(const T *pData,size_t extent,T target)
{
	size_t uRet = extent - 1;
	const T *pTest = pData + uRet;
	while (pTest >= pData) {
		if (*pTest-- == target) {
			return static_cast<int>(uRet);
		}
		--uRet;
	}
	return -1;
}
 No newline at end of file
Loading