naslov 9

434
Contents at a glance Introduction xix Part I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Chapter 2 Working with variables, operators, and expressions 39 Chapter 3 Writing methods and applying scope 65 Chapter 4 Using decision statements 93 Chapter 5 Using compound assignment and iteration statements 113 Chapter 6 Managing errors and exceptions 135 Part II UNDERSTANDING THE C# OBJECT MODEL Chapter 7 Creating and managing classes and objects 161 Chapter 8 Understanding values and references 183 Chapter 9 Creating value types with enumerations and structures 207 Chapter 10 Using arrays 227 Chapter 11 Understanding parameter arrays 251 Chapter 12 Working with inheritance 263 Chapter 13 Creating interfaces and defining abstract classes 287 Chapter 14 Using garbage collection and resource management 317 Part III DEFINING EXTENSIBLE TYPES WITH C# Chapter 15 Implementing properties to access fields 341 Chapter 16 Using indexers 363 Chapter 17 Introducing generics 381 Chapter 18 Using collections 411 Chapter 19 Enumerating collections 435 Chapter 20 Decoupling application logic and handling events 451 Chapter 21 Querying in-memory data by using query expressions 485 Chapter 22 Operator overloading 511 Chapter 16 Using indexers 363 Chapter 17 Introducing generics 381 Chapter 18 Using collections 411 Chapter 19 Enumerating collections 435 Chapter 20 Decoupling application logic and handling events 451 Chapter 21 Querying in-memory data by using query expressions 485 Chapter 22 Operator overloading 511 iv Contents at a glance Part IV BUILDING PROFESSIONAL WINDOWS 8.1 APPLICATIONS WITH C# Chapter 23 Improving throughput by using tasks 537 Chapter 24 Improving response time by performing asynchronous operations 581 Chapter 25 Implementing the user interface for a Windows Store app 623 Chapter 26 Displaying and searching for data in a Windows Store app 673 Chapter 27 Accessing a remote database from a Windows Store app 721 Index 763 v Contents Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Part I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual Studio 2013 environment. . . . . . 3 Writing your first program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Using namespaces. . . . . . . .

Upload: salasko

Post on 05-Dec-2015

218 views

Category:

Documents


1 download

DESCRIPTION

xczzzz

TRANSCRIPT

Page 1: Naslov 9

Contents at a glance Introduction xix Part I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Chapter 2 Working with variables, operators, and expressions 39 Chapter 3 Writing methods and applying scope 65 Chapter 4 Using decision statements 93 Chapter 5 Using compound assignment and iteration statements 113 Chapter 6 Managing errors and exceptions 135 Part II UNDERSTANDING THE C# OBJECT MODEL Chapter 7 Creating and managing classes and objects 161 Chapter 8 Understanding values and references 183 Chapter 9 Creating value types with enumerations and structures 207 Chapter 10 Using arrays 227 Chapter 11 Understanding parameter arrays 251 Chapter 12 Working with inheritance 263 Chapter 13 Creating interfaces and defining abstract classes 287 Chapter 14 Using garbage collection and resource management 317 Part III DEFINING EXTENSIBLE TYPES WITH C# Chapter 15 Implementing properties to access fields 341 Chapter 16 Using indexers 363 Chapter 17 Introducing generics 381 Chapter 18 Using collections 411 Chapter 19 Enumerating collections 435 Chapter 20 Decoupling application logic and handling events 451 Chapter 21 Querying in-memory data by using query expressions 485 Chapter 22 Operator overloading 511

Chapter 16 Using indexers 363 Chapter 17 Introducing generics 381 Chapter 18 Using collections 411 Chapter 19 Enumerating collections 435 Chapter 20 Decoupling application logic and handling events 451 Chapter 21 Querying in-memory data by using query expressions 485 Chapter 22 Operator overloading 511 iv Contents at a glance Part IV BUILDING PROFESSIONAL WINDOWS 8.1 APPLICATIONS WITH C# Chapter 23 Improving throughput by using tasks 537 Chapter 24 Improving response time by performing asynchronous operations 581 Chapter 25 Implementing the user interface for a Windows Store app 623 Chapter 26 Displaying and searching for data in a Windows Store app 673 Chapter 27 Accessing a remote database from a Windows Store app 721 Index 763 v Contents Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Part I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual Studio 2013 environment. . . . . . 3 Writing your first program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Using namespaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Creating a graphical application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Examining the Windows Store app. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Examining the WPF application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Adding code to the graphical application. . . . . . . . . . . . . . . . . . . . . . 34 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 Quick Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Chapter 2 Working with variables, operators, and expressions 39 Understanding statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Using identifiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Identifying keywords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Using variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Naming variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Declaring variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Working with primitive data types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Unassigned local variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Displaying primitive data type values. . . . . . . . . . . . . . . . . . . . . . . . . 44 What do you think of this book? We want to hear from you! Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you. To participate in a brief online survey, please visit: www.microsoft.com/learning/booksurvey/ vi Contents Using arithmetic

Page 2: Naslov 9

operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Operators and types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Examining arithmetic operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Controlling precedence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Using associativity to evaluate expressions. . . . . . . . . . . . . . . . . . . . . 60 Associativity and the assignment operator. . . . . . . . . . . . . . . . . . . . . 60 Incrementing and decrementing variables. . . . . . . . . . . . . . . . . . . . . . . . . . .61 Prefix and postfix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Declaring implicitly typed local variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 Quick Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Chapter 3 Writing methods and applying scope 65 Creating methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Declaring a method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Returning data from a method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Calling methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Applying scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Defining local scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Defining class scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Overloading methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Writing methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Using optional parameters and named arguments. . . . . . . . . . . . . . . . . . . 83 Defining optional parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Passing named arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Resolving ambiguities with optional parameters and named arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Chapter 4 Using decision statements 93 Declaring Boolean variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Using Boolean operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Contents vii Understanding equality and relational operators. . . . . . . . . . . . . . . 94 Understanding conditional logical operators. . . . . . . . . . . . . . . . . . . 95 Short-circuiting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Summarizing operator precedence and associativity. . . . . . . . . . . . 96 Using if statements to make decisions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Understanding if statement syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Using blocks to group statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Cascading if statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Using switch statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Understanding switch statement syntax. . . . . . . . . . . . . . . . . . . . . . 106 Following the switch statement rules. . . . . . . . . . . . . . . . . . . . . . . . . 107 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Chapter 5 Using compound assignment and iteration statements 113 Using compound assignment operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Writing while statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Writing for Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Understanding for statement scope. . . . . . . . . . . . . . . . . . . . . . . . . . 123 Writing do statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Chapter 6 Managing errors and exceptions 135 Coping with errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Trying code and catching exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Unhandled Exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Using multiple catch handlers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Catching multiple

Page 3: Naslov 9

exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Propagating exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Using checked and unchecked integer arithmetic. . . . . . . . . . . . . . . . . . . 147 Writing checked statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 viii Contents Writing checked expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Throwing exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Using a finally block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Part II UNDERSTANDING THE C# OBJECT MODEL Chapter 7 Creating and managing classes and objects 161 Understanding classification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 The purpose of encapsulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Defining and using a class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Controlling accessibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Working with constructors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Overloading constructors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Understanding static methods and data. . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Creating a shared field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Creating a static field by using the const keyword. . . . . . . . . . . . . . 177 Understanding static classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Anonymous classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Chapter 8 Understanding values and references 183 Copying value type variables and classes. . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Understanding null values and nullable types. . . . . . . . . . . . . . . . . . . . . . . 189 Using nullable types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Understanding the properties of nullable types. . . . . . . . . . . . . . . 191 Using ref and out parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Creating ref parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Creating out parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 How computer memory is organized. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Using the stack and the heap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Contents ix The System.Object class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Boxing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Unboxing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Casting data safely. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 The is operator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 The as operator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Chapter 9 Creating value types with enumerations and structures 207 Working with enumerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Declaring an enumeration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Using an enumeration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Choosing enumeration literal values. . . . . . . . . . . . . . . . . . . . . . . . . 209 Choosing an enumeration’s underlying type. . . . . . . . . . . . . . . . . . 210 Working with structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Declaring a structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Understanding structure and class differences. . . . . . . . . . . . . . . . 215 Declaring structure variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Understanding structure initialization. . . . . . . . . . . . . . . . . . . . . . . . 217 Copying structure

Page 4: Naslov 9

variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Chapter 10 Using arrays 227 Declaring and creating an array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Declaring array variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227 Creating an array instance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Populating and using an array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Creating an implicitly typed array. . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Accessing an individual array element. . . . . . . . . . . . . . . . . . . . . . . . 231 Iterating through an array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 x Contents Passing arrays as parameters and return values for a method. . . 233 Copying arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Using multidimensional arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Creating jagged arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Chapter 11 Understanding parameter arrays 251 Overloading—a recap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Using array arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Declaring a params Array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Using params object[ ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Using a params array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 Comparing parameter arrays and optional parameters. . . . . . . . . . . . . . 259 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Chapter 12 Working with inheritance 263 What is inheritance?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Using inheritance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 The System.Object class revisited. . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Calling base class constructors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Assigning classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Declaring new methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Declaring virtual methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Declaring override methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Understanding protected access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Understanding extension methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Contents xi Chapter 13 Creating interfaces and defining abstract classes 287 Understanding interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Defining an interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 Implementing an interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Referencing a class through its interface. . . . . . . . . . . . . . . . . . . . . . 290 Working with multiple interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Explicitly implementing an interface. . . . . . . . . . . . . . . . . . . . . . . . . 292 Interface restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Defining and using interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Abstract classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Abstract methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Sealed classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Sealed methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Implementing and using an abstract class. . . . . . . . . . . . . . . . . . . . 307 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313 Quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Chapter 14 Using garbage collection and resource management 317 The life and times of an object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Writing destructors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Why use the garbage collector?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 How does the garbage collector work?. . . . . . . . . . . . . . . . . .

Page 5: Naslov 9

. . . . . 322 Recommendations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Resource management. . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Disposal methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . 323 Exception-safe disposal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 The using statement and the IDisposable interface. . . . . . . . . . . . . 324 Calling the Dispose method from a destructor. . . . . . . . . . . . . . . . . 326 Implementing exception-safe disposal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 Quick reference.

Knjiga ”Programski jezik C++ sa rešenim zadacima”, nastala je

Page 6: Naslov 9

kao prate i  materijal za kurseve koje su autori držali na UniverzitetuSingidunum (Fakultet za informatiku i ra unarstvo i

Page 7: Naslov 9

Fakultet zamenadžment).Knjiga je orijentisana ka poslovnim aplikacijama i sadrži veliki

Page 8: Naslov 9

brojrešenih zadataka sa objašnjenjima.U dodatku knjige detaljno su opisana Microsoftova integrisanarazvoj

Page 9: Naslov 9

na okruženja Visual Studio C++ verzije 6 i 2008.Autori su uložili veliki napor da ova knjiga ne sadrži greške.

Page 10: Naslov 9

Svesugestije, korekcije i primedbe su više nego dobrodošle.- 3 - 

Page 11: Naslov 9

 

Sadržaj

Page 12: Naslov 9

Predgovor ....................................................................................................... 3Sadržaj .......................................................................................

Page 13: Naslov 9

.................... 41. Uvod .......................................................................................................... 61.1 Programski jezik C++ ...........

Page 14: Naslov 9

............................

............................

....... 61.2 Proširenja programskog jezika C .........................................................

Page 15: Naslov 9

71.3 Jednostavan C++ program ................................................................... 91.4 Celi brojevi i aritmetika .....................................

Page 16: Naslov 9

............................

.... 162. Realni brojevi, iteracije i donošenje odluka ............................................ 232.1 Realni brojevi ................................

Page 17: Naslov 9

............................

......................... 232.2 Iteracije (petlje) .................................................................................. 302.3 Donošenje odluk

Page 18: Naslov 9

e .............................................................................. 382.4 Pravila prioriteta ................................................................................

Page 19: Naslov 9

423. Koncept funkcije ...................................................................................... 493.1 Definicija funkcije .....................................................

Page 20: Naslov 9

........................ 493.2 Prosle ivanje  parametara po vrednosti .............................................. 523.3 Promenljive

Page 21: Naslov 9

kao atributi .................................................................... 544. Nizovi ............................................................................................

Page 22: Naslov 9

.......... 574.1 Definicija niza .................................................................................... 574.2 Višedimenzionalni nizovi ...

Page 23: Naslov 9

............................

............................

....... 645. Pokaziva i  ................................................................................................ 685.1

Page 24: Naslov 9

Deklarisanje i inicijalizacija pokaziva a ........................................... 685.2 Pokaziva

i  i nizovi ....................................

Page 25: Naslov 9

............................

............. 716. C-stringovi, pokaziva i, nizovi, funkcije, korisni ki definisani tipovi podataka i

Page 26: Naslov 9

tabele .......................................................................................... 766.1 Definicija i inicijalizacija stringa .................................................

Page 27: Naslov 9

...... 766.2 String konstante i pokaziva i  ............................................................. 796.3 Nizovi stringova i pokaziva a ................................

Page 28: Naslov 9

........................... 836.4 Pokaziva i, reference na promenljive i funkcije ................................ 866.5 Nizovi i

Page 29: Naslov 9

funkcije ................................................................................ 936.6 Stringovi i funkcije ......................................................................

Page 30: Naslov 9

...... 986.7. Korisni ki definisani tipovi podataka i tabele ................................ 1106.8 Strukture ............................

Page 31: Naslov 9

............................

............................

...... 1126.9 Nizovi struktura: tabele .................................................................... 1177. Uvod

Page 32: Naslov 9

u klase i objekte ........................................................................... 1197.1 Objekti, klase i objektno orijentisani siste

Page 33: Naslov 9

mi ................................... 119- 4 - 

Page 34: Naslov 9

 

7.2 Uvod u string objekte ....................................................................... 1217.3 Donošenje odluka u radu sa stringovima ....

Page 35: Naslov 9

............................

......... 1317.4 Funkcije i string objekti ................................................................... 1337.5 Primeri rada sa string

Page 36: Naslov 9

objektima ...................................................... 1387.6 Nizovi stringova ............................................................................... 1478. Programers

Page 37: Naslov 9

ki definisane klase i objekti ................................................ 1488.1 Deklarisanje objekata i klasa..................

Page 38: Naslov 9

............................

.............. 1488.2 Konstruktor klase ............................................................................. 1508.3 Preklapanje konstruktora..........

Page 39: Naslov 9

............................

............................ 1608.4 Destruktori ....................................................................................... 1648.5 Opšte preklapanj

Page 40: Naslov 9

e funkcija i šabloni funkcija .................................. 1749. Rad sa objektima ..............................................................................

Page 41: Naslov 9

...... 1789.1 Koriš enje  nizova, pokaziva a  i dinami ka  alokacija memorije ..... 1789.2 Konstruktor kopije ..........

Page 42: Naslov 9

............................

............................

......... 1859.3 Koriš enje rezervisane re i  const u radu sa klasama ..............

Page 43: Naslov 9

......... 1979.4 Objekti, funkcije i pokaziva i  .......................................................... 2159.5 Dinami ka alokacija objekat

Page 44: Naslov 9

a .......................................................... 2419.6 Stati

ki  podaci  lanovi i funkcije ..................................................... 24710. Nasle ivanj

Page 45: Naslov 9

e ......................................................................................... 25610.1 Primeri nasle ivanja  i osnovna terminologija .....................

Page 46: Naslov 9

........... 25610.2 Polimorfizam .................................................................................. 27810.3 Apstraktne osnovne

Page 47: Naslov 9

klase............................................................... 29711. Fajlovi .................................................................................................. 29911.1 Ulazno/i

Page 48: Naslov 9

zlazni tokovi ..................................................................... 29911.2 Procesiranje fajla karakter po karakter...........................................

Page 49: Naslov 9

32111.3 Slu ajni pristup fajlu ...................................................................... 32511.4 Procesiranje binarnog fajla sekvencijaln

Page 50: Naslov 9

o...................................... 33212. Specijalne teme: Prijateljske funkcije, preklapanje operatora, makroi iinline funkcije ...

Page 51: Naslov 9

............................

............................

............................

..... 33812.1 Prijateljske (friend) funkcije .......................................................... 33812.

Page 52: Naslov 9

2 Preklapanje osnovnih aritmetikih operatora ................................. 34412.3 Makroi i inline funkcije ............................................................

Page 53: Naslov 9

..... 359Dodatak A: Integrisano razvojno okruženje Microsoft Visual C++ .......... 365Dodatak B: Integrisano razvojno okružen

Page 54: Naslov 9

je Microsoft Visual C++ 2008 . 394Reference: ..........................................................

Page 55: Naslov 9

............................

............ 412- 5 - 

Page 56: Naslov 9

Knjiga ”Programski jezik C++ sa rešenim zadacima”, nastala je kao prate i  materijal za kurseve k

Page 57: Naslov 9

oje su autori držali na UniverzitetuSingidunum (Fakultet za informatiku i ra unarstvo i Fakultet z

Page 58: Naslov 9

amenadžment).Knjiga je orijentisana ka poslovnim aplikacijama i sadrži veliki brojrešenih zadataka sa

Page 59: Naslov 9

objašnjenjima.U dodatku knjige detaljno su opisana Microsoftova integrisanarazvojna okruženja Visual Studio C+

Page 60: Naslov 9

+ verzije 6 i 2008.Autori su uložili veliki napor da ova knjiga ne sadrži greške. Svesugestije, korekcije i

Page 61: Naslov 9

primedbe su više nego dobrodošle.- 3 - 

Page 62: Naslov 9

 

SadržajPredgovor ....................................................................................................... 3Sadržaj ...........................................................

Page 63: Naslov 9

............................

.................... 41. Uvod .......................................................................................................... 61.1 Programski

Page 64: Naslov 9

jezik C++ .......................................................................... 61.2 Proširenja programskog jezika C ................................................

Page 65: Naslov 9

......... 71.3 Jednostavan C++ program ................................................................... 91.4 Celi brojevi i aritmetika .........

Page 66: Naslov 9

............................

............................

.... 162. Realni brojevi, iteracije i donošenje odluka ............................................ 232.1 Realni brojevi ....

Page 67: Naslov 9

............................

............................

......................... 232.2 Iteracije (petlje) .................................................................................. 302.3

Page 68: Naslov 9

Donošenje odluke .............................................................................. 382.4 Pravila prioriteta ........................................................

Page 69: Naslov 9

........................ 423. Koncept funkcije ...................................................................................... 493.1 Definicija funkcije .........................

Page 70: Naslov 9

............................

........................ 493.2 Prosle ivanje  parametara po vrednosti .............................................. 523.3

Page 71: Naslov 9

Promenljive kao atributi .................................................................... 544. Nizovi ................................................................

Page 72: Naslov 9

............................

.......... 574.1 Definicija niza .................................................................................... 574.2 Višedimen

Page 73: Naslov 9

zionalni nizovi .................................................................. 645. Pokaziva i  ....................................................................................

Page 74: Naslov 9

............ 685.1 Deklarisanje i inicijalizacija pokaziva a ........................................... 685.2 Pokaziva

i  i nizovi ........

Page 75: Naslov 9

............................

............................

............. 716. C-stringovi, pokaziva i, nizovi, funkcije, korisni ki definisani

Page 76: Naslov 9

tipovi podataka i tabele .......................................................................................... 766.1 Definicija i inicijalizacija stringa .....................

Page 77: Naslov 9

............................

...... 766.2 String konstante i pokaziva i  ............................................................. 796.3 Nizovi stringova i pokaziva a ....

Page 78: Naslov 9

............................

........................... 836.4 Pokaziva i, reference na promenljive i funkcije ................................ 866.5

Page 79: Naslov 9

Nizovi i funkcije ................................................................................ 936.6 Stringovi i funkcije ..........................................

Page 80: Naslov 9

............................

...... 986.7. Korisni ki definisani tipovi podataka i tabele ................................ 1106.8 Strukture

Page 81: Naslov 9

............................

............................

............................

...... 1126.9 Nizovi struktura: tabele .............................................................

Page 82: Naslov 9

....... 1177. Uvod u klase i objekte ........................................................................... 1197.1 Objekti, klase i objektno

Page 83: Naslov 9

orijentisani sistemi ................................... 119- 4 - 

Page 84: Naslov 9

 

7.2 Uvod u string objekte ...............

Page 85: Naslov 9

............................

............................ 1217.3 Donošenje odluka u radu sa stringovima ......................................... 1317.4

Page 86: Naslov 9

Funkcije i string objekti ................................................................... 1337.5 Primeri rada sa string objektima .......................................

Page 87: Naslov 9

............... 1387.6 Nizovi stringova ............................................................................... 1478. Programerski definisane klase i

Page 88: Naslov 9

objekti ................................................ 1488.1 Deklarisanje objekata i klasa............................................................ 1488.2 

Page 89: Naslov 9

Konstruktor klase ............................................................................. 1508.3 Preklapanje konstruktora.................................................................. 

Page 90: Naslov 9

1608.4 Destruktori ....................................................................................... 1648.5 Opšte preklapanje funkcija i šabloni

Page 91: Naslov 9

funkcija .................................. 1749. Rad sa objektima .................................................................................... 1789.1 Koriš enje  nizov

Page 92: Naslov 9

a, pokaziva a  i dinami ka  alokacija memorije ..... 1789.2 Konstruktor kopije ..................................................................

Page 93: Naslov 9

......... 1859.3 Koriš enje rezervisane re i  const u radu sa klasama ....................... 1979.4 Objekti,

Page 94: Naslov 9

funkcije i pokaziva i  .......................................................... 2159.5 Dinami ka alokacija objekata .....................................................

Page 95: Naslov 9

..... 2419.6 Statiki  podaci  la

novi i funkcije ..................................................... 24710. Nasle ivanje .....................................................

Page 96: Naslov 9

............................

........ 25610.1 Primeri nasle ivanja  i osnovna terminologija ................................ 25610.2 Polimorfizam .......

Page 97: Naslov 9

............................

............................

................... 27810.3 Apstraktne osnovne klase................................................

Page 98: Naslov 9

............... 29711. Fajlovi .................................................................................................. 29911.1 Ulazno/izlazni tokovi ..................................

Page 99: Naslov 9

............................

....... 29911.2 Procesiranje fajla karakter po karakter........................................... 32111.3 Slu ajni pristup fajlu ....

Page 100: Naslov 9

............................

............................

.......... 32511.4 Procesiranje binarnog fajla sekvencijalno...................................... 33212. S

Page 101: Naslov 9

pecijalne teme: Prijateljske funkcije, preklapanje operatora, makroi iinline funkcije ...........................................................

Page 102: Naslov 9

............................

..... 33812.1 Prijateljske (friend) funkcije .......................................................... 33812.2 Preklapanje osnovnih aritmeti

Page 103: Naslov 9

kih operatora ................................. 34412.3 Makroi i inline funkcije ................................................................. 359Dodatak A: Integrisano

Page 104: Naslov 9

razvojno okruženje Microsoft Visual C++ .......... 365Dodatak B: Integrisano razvojno okruženje Microsoft Visual

Page 105: Naslov 9

C++ 2008 . 394Reference: .................................................................................................. 412- 5 - 

Page 106: Naslov 9

2.1. Povijesni pregled razvoja programskih jezika

Page 107: Naslov 9

Prva raèunala koja su se pojavila bila su vrlo složena za korištenje. Njih su koristiliiskljuèivo struènjaci koji su bili osposobljeni za komunikaciju s raèunalom. Takomunikacija se sastojala od dva osnovna koraka: davanje uputa raèunalu i èitanjerezultata obrade. I dok se èitanje rezultata vrlo brzo uèinilo koliko-toliko snošljivimuvoðenjem pisaèa na kojima su se rezultati

Page 108: Naslov 9

ispisivali, unošenje uputa – programiranje – se sastojalo od mukotrpnog unosa niza nula i jedinica. Ti nizovi su davali raèunaluupute kao što su: “zbroji dva broja”, “premjesti podatak s neke memorijske lokacije nadrugu”, “skoèi na neku instrukciju izvan normalnog slijeda instrukcija” i slièno. Kako jetakve programe bilo vrlo složeno pisati, a još složenije èitati i ispravljati,

Page 109: Naslov 9

ubrzo su se pojavili prvi programerski alati nazvaniasembleri(engl.assemblers).U asemblerskom jeziku svaka strojna instrukcija predstavljena je mnemonikom koji je razumljiv ljudima koji!itaju program. Tako se zbrajanje naj!eš"

Page 110: Naslov 9

e obavljamnemonikomADD

, dok se premještanje podataka obavlja mnemonikomMOV

. Time se postigla bolja!itljivost programa, no i dalje je bilo vrlo složeno pisati programe iispravljati ih jer je bilo potrebno davati sve, pa i najmanje upute ra!

Page 111: Naslov 9

unalu za svaku pojedinu operaciju. Javlja se problem koji"e kasnije, nakon niza godina, dovesti i do 

11 pojave C++ programskog jezika: potrebno je razviti programerski alat koji"e osloboditi programera rutinskih poslova te mu dopustiti da se usredoto!

Page 112: Naslov 9

i na problem koji rješava.Zbog toga se pojavljuje niz viših programska jezika, koji preuzimaju na sebe neke“dosadne” programerske poslove. Tako je FORTRAN bio posebno pogodan zamatemati!ke prora!une, zatim BASIC koji se vrlo brzo u!

Page 113: Naslov 9

io, te COBOL koji je bio u pravilu namijenjen upravljanju bazama podataka.Oko#972. se pojavljuje jezik C, koji je direktna prete!a današnjeg jezika C++. To je bio prvi jezik op"e namjene te je postigao nevi$

Page 114: Naslov 9

en uspjeh. Više je razloga tome: jezik  je bio jednostavan za u!enje, omogu"avao je modularno pisanje programa, sadržavao jesamo naredbe koje se mogu jednostavno prevesti u strojni jezik, davao je brzi kôd. Jezik nije bio optere"en mnogim složenim funkcijama, kao na primjer

Page 115: Naslov 9

 skupljanje sme#a (engl. garbage collection): ako je takav podsustav nekome trebao, korisnik ga je sam napisao.Jezik je omogu"avao vrlo dobru kontrolu strojnih resursa te je na taj na!in omogu"

Page 116: Naslov 9

io programerima da optimiziraju svoj kôd. Do unatrag nekoliko godina, 99% komercijalnih programa bili su pisani u C-u, ponegdje dopunjeni odsje!cima u strojnom jeziku kako bise kriti!ni dijelovi sustava u!inili dovoljno brzima. No kako je razvoj pro

Page 117: Naslov 9

gramske podrške napredovao, stvari su se i na podru! ju programskih jezika po!ele mijenjati. Složeni projekti od nekoliko stotina tisu"a, pa iviše redaka više nisu rijetkost, pa je zbog toga bilo potrebno uvesti dodatne mehanizmekojima bi se takvi programi u!

Page 118: Naslov 9

inili jednostavnijima za izradu i održavanje, te kojima bise omogu"ilo da se jednom napisani kôd iskoristi u više razli!itih projekata.Bjarne Stroustrup je zapo!eo#979. godine rad na jeziku “C s klasama” (engl.C with Classes

Page 119: Naslov 9

). Prije toga, uComputing Laboratory of Cambridge on je radio na svomdoktoratu te istraživao distribuirane sustave: granu ra!unalne znanosti u kojoj se prou!avaju modeli obrade podataka na više jedinica istodobno. Pri tome koristio se jezikom Simula, koji posjedovao neka važna svojstva koja su ga

Page 120: Naslov 9

!inila prikladnim za taj posao. Na primjer, Simula je posjedovala pojam klase: strukture podataka kojeobjedinjavaju podatke i operacije nad podacima. Korištenje klasa omogu"ilo je da sekoncepti problema koji se rješava izraze direktno pomo"u jezi!

Page 121: Naslov 9

nih konstrukcija.Dobiveni kôd je bio vrlo!itljiv i razumljiv, a g. Stroustrup je bio posebno fasciniranna!inom na koji je sam programski jezik upu"ivao programera u razmišljanju o problemu. Tako$er, jezik je posjedovao sustav tipizacije, koji je

Page 122: Naslov 9

!esto pomagaokorisniku u pronalaženju pogrešaka ve" prilikom prevo$enja. No naoko idealan u teoriji, jezik Simula je posrnuo u praksi: prevo$enje je biloiznimno dugotrajno, a dobiveni kôd se izvodio ekstremno sporo. Dobiveni program je bio neupotrebljiv, i da bi ipa

Page 123: Naslov 9

k pošteno zaradio svoj doktorat, gospodin Stroustrup semorao potruditi i ponovo napisati cjelokupan program u jeziku BCPL – jeziku niskerazine koji je omogu"io vrlo dobre performanse prevedenog programa. No iskustvo pisanja složenog programa u takvom jeziku je bilo užasno i g. Stroustrup je, pozavršetku svog posla na Cambridgeu,!

Page 124: Naslov 9

vrsto sebi obe"ao da više nikada ne"e takavsložen problem pokušati riješiti neadekvatnim alatima poput BCPL-a ili Simule.Kada se#979. zaposlio u Bell Labs u Murray Hillu, zapo!eo je rad na onome što"

Page 125: Naslov 9

ekasnije postati C++. Pri tome je iskoristio svoje iskustvo ste!eno prilikom rada nadoktoratu te pokušao stvoriti univerzalni jezik koji"e udovoljiti današnjim zahtjevima. 

12Pri tome je uzeo dobra svojstva niza jezika: Simula, Clu, Algol68 i Ada, a kao osnovu jeuzeo jezik C.

Page 126: Naslov 9

2.2. Osnovna svojstva jezika C++Èetiri su važna svojstva jezika C++ koja ga èine objektno orijentiranim:enkapsulacija(engl.encapsulation), skrivanje podataka(engl.data hiding ),nasljeðivanje

Page 127: Naslov 9

(engl.inheritance) i polimorfizam(engl. polymorphism). Sva ta tri svojstva doprinoseostvarenju takozvane objektno orijentirane paradigme programiranja.Da bismo to bolje razumjeli, pogledajmo koji su se programski modeli koristili u prošlosti. Pri tome je svakak

Page 128: Naslov 9

o najvažniji model proceduralno strukturiranog programiranja.Proceduralno programiranje se zasniva na promatranju programa kao niza jednostavnih programskih odsje!aka: procedura. Svaka procedura je konstruirana takoda obavlja jedan manji zadatak, a cijeli se program sastoji od niza procedura kojeme$

Page 129: Naslov 9

usobno sudjeluju u rješavanju zadatka.Kako bi koristi od ovakve podjele programa bile što izraženije, smatrano je dobrom programerskom taktikom odvojiti proceduru od podataka koje ona obra$uje: time je bilomogu"e pozvati proceduru za razli!ite ulazne podatke i na taj na!

Page 130: Naslov 9

in iskoristiti je na višemjesta. Strukturirano programiranje je samo dodatak na proceduralni model: onodefinira niz osnovnih jezi!nih konstrukcija, kao petlje, grananja i pozive procedura kojeunose red u programe i!ine samo programiranje daleko jednostavnijim.Princip kojim bismo mogli obilježiti proceduralno strukturirani model jest

Page 131: Naslov 9

 podijeli- pa-vladaj: cjelokupni program je presložen da bi ga se moglo razumjeti pa se zbog togaon rastavlja na niz manjih zadataka – procedura – koje su dovoljno jednostavne da bi semogle izraziti pomo"u naredbi programskog jezika. Pri tome, pojedina proceduratako$

Page 132: Naslov 9

er ne mora biti riješena monolitno: ona može svoj posao obaviti kombiniraju"i radniza drugih procedura.Ilustrirat"emo to primjerom: zamislimo da želimo izraditi kompleksan program zaobradu trodimenzionalnih objekata. Kao jednu od mogu"

Page 133: Naslov 9

nosti koje moramo ponuditikorisnicima jest rotacija objekata oko neke to!ke u prostoru. Koriste"i proceduralno programiranje, taj zadatak bi se mogao riješiti ovako:#. Listaj sve objekte redom.2. 

Page 134: Naslov 9

Za pojedini objekt odredi njegov tip.3. Ovisno o tipu, pozovi ispravnu proceduru koja"e izra!unati novu poziciju objekta.4. U skladu s tipom podataka ažuriraj koordinate objekta.Operacije odreðivanja tipa, izraèunavanje nove

Page 135: Naslov 9

pozicije objekta i ažuriranje koordinatase mogu dalje predstaviti pomoæu procedura koje sadržavaju niz jednostavnijih akcija.Ovakav programski pristup je bio vrlo uspješan do kasnih osamdesetih, kada su

rupan oprinos  

ha iskojna

Page 136: Naslov 9

uci a našimpros orimaŽivotni put, riječi i

Page 137: Naslov 9

praksa posljednjeg Božijegvjerovjesni a

Page 138: Naslov 9

Muhammeda, a.s., detaljno su zabilje ženi i

Page 139: Naslov 9

vjerno prenijeti potonjim generacijama. To jena

Page 140: Naslov 9

jvjerodostojniji izvještaj o životu jednog v

Page 141: Naslov 9

j rov jesnika. Do nas je prenijet putem pouzdani

Page 142: Naslov 9

h i sigurnihpredana koja, s naučne

Page 143: Naslov 9

strane, ne ostavljaju prostorani za najmanju

Page 144: Naslov 9

sumnju u vlastitu autentičnost. To namomo u ćava

Page 145: Naslov 9

da tačno i detaljno upoznamo Poslanikovživot,

Page 146: Naslov 9

kao i ono što je on govorio i (u)radio i ta o

Page 147: Naslov 9

jasno aspoznamo ono što je tokom povijesti

Page 148: Naslov 9

eventualnododato ili izmišljeno.

Page 149: Naslov 9

Općen to ledno,

stepen vjerodostojnostiP

Page 150: Naslov 9

osni ov o ivotopisa toliki je da

Page 151: Naslov 9

ne ost v lj  pro stora sumnji, što nije slučaj sa

Page 152: Naslov 9

životopisima ranijihposlanika. ako, npr.,

o

Page 153: Naslov 9

usau/Mojsiju, a s., imamopouzdanih vijesti, ali su se one

Page 154: Naslov 9

izmješale sa židovskimizmišljotinama i 

Page 155: Naslov 9

izmjenama, tako da se ne možemo s5

Page 156: Naslov 9
Page 157: Naslov 9

 

kpouzdan em o loniti n

Page 158: Naslov 9

po toei Tevrat/Stari z

v et ako želimo 

Page 159: Naslov 9

rekon trui ati v

erodo to nu  biografi u

Page 160: Naslov 9

Mu aa a. . Mnogi kritičari čak i na Zapadu

Page 161: Naslov 9

izraža vau

otvo eu

umn u

Page 162: Naslov 9

u neke kn ige Starog zav etaNeki tvrde da

Page 163: Naslov 9

po edine kn ige Starog zav eta niuzabil e

Page 164: Naslov 9

žene za života M aa a. niti epo re

Page 165: Naslov 9

dnonakon

egove  mrti

ve dugo

Page 166: Naslov 9

v e mena po i e  te d e

e z 

Page 167: Naslov 9

n ihov ut r . To

e  m po  ebi dovol n

Page 168: Naslov 9

oz

v u umn u

u utentičn

Page 169: Naslov 9

o t biografi e Mu aaa. ko u

Page 170: Naslov 9

m nud i Stari zav et. Sličan problem e  i

Page 171: Naslov 9

 im što

e  govori i

Page 172: Naslov 9

rdio I a a. .

ko eg kršni naziva u

Page 173: Naslov 9

I u om

Evanđela ko a  u  prizn

ata

Page 174: Naslov 9

od Crkve zapi aa u ne za

Page 175: Naslov 9

vri eme život

aa . . e

mnogo

Page 176: Naslov 9

ka ni e . Ta evanđela

uodabrana bez

Page 177: Naslov 9

z

n tven e valo i a i

Page 178: Naslov 9

iz eđu to tina

evanđel a koja u tada bila

Page 179: Naslov 9

u po edu kršana. Niautor t

Page 180: Naslov 9

vo tih evađel a ni e naučno

Page 181: Naslov 9

utvrđeno da iih čov ek mogao mi

Page 182: Naslov 9

e av e ti prihvatiti. Takođert

Page 183: Naslov 9

evanđela e adrže ne rekinuti lanac

Page 184: Naslov 9

p eno ila a koi i

do ezao do utora  Uz

Page 185: Naslov 9

to zapa ni kritičari erazilaze po

Page 186: Naslov 9

pit n u ime nekih au o a:  ko

u   ni

Page 187: Naslov 9

i kada u tačno živ eli?  Sve to dovodi u

umn u

Page 188: Naslov 9

autent čno t onoga št evanđel adrže

Page 189: Naslov 9

. Ako e tak a

ituaci ma

bioraf ma

Page 190: Naslov 9

velikihpo lan ika ko i

u kl učne lično ti

Page 191: Naslov 9

na r šr eni ih eligi a  u vi et u logično e  d

Page 192: Naslov 9

život pi i o niv ača drugi n i

hreligi a i

Page 193: Naslov 9

filozokih pravaca (poput Bude

onfuči

Page 194: Naslov 9

aidr ) budu

m

Page 195: Naslov 9

em tupn

u v erodo

to

Page 196: Naslov 9

o ti Predan a ko a n hovi

l edbe nici

Page 197: Naslov 9

pre

e o n ima 6

Page 198: Naslov 9
Page 199: Naslov 9

 

A K F I znanstvenog stajališta, nemaju

Page 200: Naslov 9

značajnije osnove Radise o pre an jim

Page 201: Naslov 9

a koja svećenici prenose je ni od rug ihpri

čemu u

Page 202: Naslov 9

svakoj generaciji bude prido ato nešto o

Page 203: Naslov 9

dpraznovjerja i legendi koje zdrav razum

Page 204: Naslov 9

oslo ođenvjer kog fanatizma

ne može prihvat ti

Page 205: Naslov 9

.Tako olazimo o

spozaje a su

ž votni

Page 206: Naslov 9

put ipra�sa poslje njeg Božijeg vjerovjesnika Muha

Page 207: Naslov 9

mme a as

ajvjeroostojniji i ajpouz a iji

Page 208: Naslov 9

izvještaji jersu pom o za ilježeni i vjer o preneseni

Page 209: Naslov 9

potonjimgeneraCIJama

slamski učenjaci su veoma

Page 210: Naslov 9

rano uočili da je zaočuvanje autentičn

Page 211: Naslov 9

osti onoga što je Muhamme a srekao ili

Page 212: Naslov 9

ura io pote a  senedneprekin i lana

Page 213: Naslov 9

cpo z a i h pre o la a putem kojeg će

Page 214: Naslov 9

osla ič kapraksa i mu r ost iti

vje o  

Page 215: Naslov 9

preneseniUtom pogleuje u

Page 216: Naslov 9

islamskoj tra iciji u ta ovlj en čitav niz naučnih

Page 217: Naslov 9

discipl na u vezi s prenošenjem onoga što je

Page 218: Naslov 9

Muhammea

rekao i ra io a

te

Page 219: Naslov 9

iscipline -inače poznate ponazivi a

Page 220: Naslov 9

ulumul-hadis, ilmul mus l eh, ilmur rid l ili

Page 221: Naslov 9

el d erhu  vet '  dilpre stavl jaj

Page 222: Naslov 9

mehanizme zaštitena osnovu ojih se

potpuno

Page 223: Naslov 9

po z a o može znati a je ono što  e dovo i  u

Page 224: Naslov 9

vezu s Poslje nji m Boži jimglasn om uistinu

Page 225: Naslov 9

tačno i autentičnoMusimanski

učenjac su ožili

Page 226: Naslov 9

ogroman napor naputu

po t avlja ja je n tv

Page 227: Naslov 9

e e  naučne meto ologije u kojoj su p

Page 228: Naslov 9

o tavlje

rigorozni kriteriji pomo kojihse

Page 229: Naslov 9

povlač jas a linija između autentičnih i

Page 230: Naslov 9

apokrif ihpre a ja  To je je tve

Page 231: Naslov 9

l č j  u vjersk m tra icijama7

Page 232: Naslov 9
Page 233: Naslov 9

Prvo:

R đen je 8 . g d ne p H džr

Page 234: Naslov 9

št znač da je gledan s

h st r sk g

Page 235: Naslov 9

stan v šta b u pr l c da se susretne

Page 236: Naslov 9

snek m d

ashaba tak zasluž časn

Page 237: Naslov 9

ep tet tab n

a" k j preds tavlja p sebnu

Page 238: Naslov 9

čast s bz r m

na jed nstven stgenerac je

Page 239: Naslov 9

k ju je dg j

l čn A ah v p slan k

Page 240: Naslov 9

s.a v s k ja je mala gr man

utjecaj na generac

Page 241: Naslov 9

ju k ja će d ć p sl je nje. H st r ča r p put

Page 242: Naslov 9

bnu S ada aut ra čuven hTabe ta,

Page 243: Naslov 9

zat m bnu

'AbduBerra '!rak ja

Page 244: Naslov 9

Hat ba el Bagdad ja eheb ja

M zz ja bnu

Page 245: Naslov 9

Hadžera Sujut je d.

uglavn m su saglasn

Page 246: Naslov 9

da mam E u Han fe pr pada generac j

Page 247: Naslov 9

5

Page 248: Naslov 9
Page 249: Naslov 9

Prvo:

R đen je 8 . g d ne p H džr

Page 250: Naslov 9

št znač da je gledan s

h st r sk g

Page 251: Naslov 9

stan v šta b u pr l c da se susretne

Page 252: Naslov 9

snek m d

ashaba tak zasluž časn

Page 253: Naslov 9

ep tet tab n

a" k j preds tavlja p sebnu

Page 254: Naslov 9

čast s bz r m

na jed nstven stgenerac je

Page 255: Naslov 9

k ju je dg j

l čn A ah v p slan k

Page 256: Naslov 9

s.a v s k ja je mala gr man

utjecaj na generac

Page 257: Naslov 9

ju k ja će d ć p sl je nje. H st r ča r p put

Page 258: Naslov 9

bnu S ada aut ra čuven hTabe ta,

Page 259: Naslov 9

zat m bnu

'AbduBerra '!rak ja

Page 260: Naslov 9

Hat ba el Bagdad ja eheb ja

M zz ja bnu

Page 261: Naslov 9

Hadžera Sujut je d.

uglavn m su saglasn

Page 262: Naslov 9

da mam E u Han fe pr pada generac j

Page 263: Naslov 9

5

Page 264: Naslov 9
Page 265: Naslov 9

Prvo:

R đen je 8 . g d ne p H džr

Page 266: Naslov 9

št znač da je gledan s

h st r sk g

Page 267: Naslov 9

stan v šta b u pr l c da se susretne

Page 268: Naslov 9

snek m d

ashaba tak zasluž časn

Page 269: Naslov 9

ep tet tab n

a" k j preds tavlja p sebnu

Page 270: Naslov 9

čast s bz r m

na jed nstven stgenerac je

Page 271: Naslov 9

k ju je dg j

l čn A ah v p slan k

Page 272: Naslov 9

s.a v s k ja je mala gr man

utjecaj na generac

Page 273: Naslov 9

ju k ja će d ć p sl je nje. H st r ča r p put

Page 274: Naslov 9

bnu S ada aut ra čuven hTabe ta,

Page 275: Naslov 9

zat m bnu

'AbduBerra '!rak ja

Page 276: Naslov 9

Hat ba el Bagdad ja eheb ja

M zz ja bnu

Page 277: Naslov 9

Hadžera Sujut je d.

uglavn m su saglasn

Page 278: Naslov 9

da mam E u Han fe pr pada generac j

Page 279: Naslov 9

5

Page 280: Naslov 9
Page 281: Naslov 9